Stig Jøran Skrevet 12. mars 2006 Skrevet 12. mars 2006 Hei Har en bok her som heter "Visual Baisc 6.0, i teori og praksis" Har lest litt i den før, men har aldri lest database delen. Så jeg tenkte å gjøre det. Men før jeg gjør det så har jeg noen spm. 1. Kan jeg lagre bilder i databasen? 2. Er det SQL man bruker med vb?
Moskus Skrevet 13. mars 2006 Skrevet 13. mars 2006 1. Ja, det burde man kunne. Litt avhengig av hvilke database man bruker, kanskje... 2. Det er å anbefale, ettersom det da vil være uavhengig av database-typen man velger i begynnelsen.
backup Skrevet 14. mars 2006 Skrevet 14. mars 2006 Mener det er smartere å legge inn referanser til bildene i databasen. Fra databasen leser du inn ønsket referanse, og så henter du riktig bilde fra f.eks. mappen bilder og legger den inn i en imagekontroll slik som f.eks. dette: Image1.Picture = LoadPicture("C:\xx\bilder\fbilde23.jpg") der C:\xx\bilder\fbilde23.jpg er bildets referanse i databasen . . Ja, i vb kan du bruke sql.
Moskus Skrevet 14. mars 2006 Skrevet 14. mars 2006 Å referere til bildene vil jo by på problemer hvis man skal flytte databasen, la oss si fra C: til D:...
backup Skrevet 14. mars 2006 Skrevet 14. mars 2006 Å referere til bildene vil jo by på problemer hvis man skal flytte databasen, la oss si fra C: til D:... 5750884[/snapback] Neida, ikke om du i vb 6 gjør slik: dim c as string, d as string d="bilde23.jpg" 'aktuell bildereferanse i databasen c =App.Path() 'adresse til programmet c = c & "\bilder\" & d Nå har c adresse til bildet uansett hvor databasen ligger hvis mappa bilder ligger på roten i mappa der programmet ligger.
Moskus Skrevet 14. mars 2006 Skrevet 14. mars 2006 OK, men hva om du så bare flytter databasen til en server, og skal kjøre programmet lokalt på klientene?
backup Skrevet 15. mars 2006 Skrevet 15. mars 2006 OK, men hva om du så bare flytter databasen til en server, og skal kjøre programmet lokalt på klientene? 5754600[/snapback] Et eksempel på ekstern database: I vb 6 programmet, sett inn en WebBrowser, Textbox og en Command kontroll. Private Sub Command1_Click() WebBrowser1.Navigate ("http://dinServer.com/Mapp1/test.asp?navn=" & Text1.Text) End Sub I Text1 tastes inn det man vil søke på i databasen, her et navn. Så klikker man Command1 som gjør at test.asp blir aktivert på dinServer. Du ser at til test.asp overføres innholdet i Text1. Nednefor er test.asp. Scriptet tester i databasen i kolonnen username om det overførte navn finnes. I så fall hentes vedkommendes bildeadresse fra kollonnen bilde. Så skriver scriptet til tilbake til WebBrowser1 en img-tag for bildet og det hentes dermed automatisk ned til klientens vb-program. Skal gså andre data fra databasen sendes til klienten, gjøres dette med passende response.write instruksjoner. <% dim navn if Request.QueryString("navn") <> "" then navn =Request.QueryString("navn") 'Sett her inn koden for databasens connection string conn etc. ' og åpne den. SQLquery = "SELECT * FROM brukere" Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open SQLquery, conn rs.MoveFirst do while Not rs.eof if rs.Fields("username") = navn then response.write "<img src=bilder/" & rs.Fields("bilde") & ">" end if rs.MoveNext loop set rs = nothing set conn = nothing end if %>
Moskus Skrevet 15. mars 2006 Skrevet 15. mars 2006 Poenget mitt var at det kan være ganske mye arbeid å holde orden på eksterne bilder, alt ettersom hvor mye bilder som skal brukes. Er det f.eks. en database over smileys som legges til og slettes, så hadde jeg garantert lagt dem direkte i basen. Slik slipper man å selv bygge kode for å slette bilde-filer og sjekke om hvilke det enda er referanser til. Skulle jeg derimot legge inn bilder over ansatte i et firma som de siste 10 årene har hatt 3 ansatte, så hadde jeg lagt dem som eksterne bilder. Begge deler er mulig, men man må velge løsningen som er gunstig for jobben man skal gjøre.
backup Skrevet 15. mars 2006 Skrevet 15. mars 2006 Sån generelt har man nok størst fleksibilitet om bildene er i egen mappe fremfor å kna dem inn i selve databasen, fordi da trenger man ikke å bruke dem svære databaseressursene hver gang man skal ha et isolert bilde på en eller annen enkeltstående webside, det holder med en enkelt img-tag. Selvsagt, har du kun tre ansatte som blir der til evig tid, da legger du ut demses hoder som separate gif'er eller noe sånt, men da trenger du nok heller ingen database for å holde data om dem, en enkelt tekstfil på server er greit nok.
Moskus Skrevet 15. mars 2006 Skrevet 15. mars 2006 Men kanskje tabellen over de tre ansatte skal kobles til et prosjekt-register eller ordre-register, hvor det lett kan bli flere tusen poster? Sånn generelt mener jeg at størst fleksibilitet oppnår man med å legge bildene inn i databasen. Men hver sin smak...
Stig Jøran Skrevet 20. mars 2006 Forfatter Skrevet 20. mars 2006 Har laget en liten database her i Access, men noen som kan fortelle meg hvordan jeg kan få hentet og skrevet data til den via VB 6.0?
aadnk Skrevet 22. mars 2006 Skrevet 22. mars 2006 (endret) I VB leser/skriver en som oftest informasjon til en database via ADODB; dette er et bibliotek en refererer til prosjektet innunder Project -> References (hvor det går under navnet Microsoft ActiveX Data Objects (versjon) library), og muliggjør inn- og utmating av data stort sett uavhenging av databasetypen. For å koble deg oppimot en Access-database, refererer du biblioteket nevnt ovenfor, hvoretter du inkludererer følgende variabler øverst i formen/klassen/modulen/prosedyren du benytter: ' Våre databasetilkoblingerPublic Database As ADODB.Connection Public tblUsers As New Recordset ' Vår første tabell Public tblPurchases As New Record ' Osv. Legg til flere tabeller om nødvendig. Nå, for å koble deg oppimot den ønskede databasen, kjører du følgende kodesnutt: ' Initialiser databaseklassenSet Database = New ADODB.Connection ' Anvend Access-databasedriveren og koble til den angitte database Database.Provider = "Microsoft.Jet.OLEDB.4.0" Database.Open "C:\Mappe\Database.mdb" For å koble deg til de forskjellige tabellene i databasen, bruker vi noe såsom dette: tblUsers.Open "Users", Database ' Kobler seg til Users-tabellentblPurchases.Open "Purchases", Database Videre, for på enkelt vis å hente ut informasjon fra en tabell (uten bruk av SQL, vel å merke), kan vi lese av hver rad slik: Dim Cell As Variant, tblUsers As Recordset ' Flytt nåværende rad til den første i tabellen tblUsers.MoveFirst ' Søk inntil alle rader er lest Do Until tblUsers.EOF ' Gå gjennom alle celler For Each Cell In tblUsers.Properties Debug.Print Cell.Name & ": " & Cell.Value Next ' *For å lese av enkeltceller vi allerede kjenner til* If tblUsers!Name = "vårbruker" Then ' ... End If ' Flytt til neste rad tblUsers.MoveNext Loop Og endelig, for å skrive informasjon til en ny rad i en tabell, kan en gjøre slik: ' Lag en ny radtblUsers.AddNew ' Skriv informasjon til raden tblUsers!Name = "Bruker" tblUsers!Password = "123" tblUsers!Address = "Oslogaten 8" tblUsers!Country = "Norway" ' osv. ' Lagre endringene tblUsers.Update Husk å terminere tilkoblingen til databasen når du er ferdig med Close-kommandoen. Endret 22. mars 2006 av aadnk
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå