Gå til innhold

Anbefalte innlegg

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?

Lenke til kommentar
Videoannonse
Annonse

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. ;)

Lenke til kommentar
Å 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. ;)

Lenke til kommentar
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

%> ;)

Lenke til kommentar

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. ;)

Lenke til kommentar

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. ;)

Lenke til kommentar

Men kanskje tabellen over de tre ansatte skal kobles til et prosjekt-register eller ordre-register, hvor det lett kan bli flere tusen poster? :p

 

Sånn generelt mener jeg at størst fleksibilitet oppnår man med å legge bildene inn i databasen. Men hver sin smak... ;)

Lenke til kommentar

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 databasetilkoblinger

Public 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 databaseklassen

Set 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-tabellen

tblPurchases.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 rad

tblUsers.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 av aadnk
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...