Vinnaren i pepparkakshustävlingen!
2006-11-19, 13:46
  #1
Medlem
freddags avatar
Tja alla!

Har problem med Visual Basic 6.0, då jag försöker få svar på SQL frågor från min databas.

Har försökt att koppla en data-controll till en ODCB stream.

dtaData.Connect = "ODBC;DSN=SQLite"
dtaData.RecordSource = "SELECT * FROM Personer"

svaret på den här sqlfrågan ska man då få fram genom att knyta data kontrollen till en textbox. (textbox.datasource=dtaData)

För att få fram alla svar från sql frågan måste man klicka next på datakontrollen och sätta textbox.datafield="telefonnummer", vilket suger hårt.

Finns det något smidigt sätt att kunna få svaret från sql frågan i något bra format som i t.ex. php där man får allt i en fin textrad. Jag vill kunna använda svaret till att göra nya sql frågor utan att behöva göra någonting manuellt.

Tack på förhand.
Citera
2006-11-21, 14:11
  #2
Medlem
Bigeards avatar
Jag har aldrig varit så förtjust i de direkt databundna kontrollerna men du kanske kan testa med en grid?

Annars kan du göra så här för att få ut en lista med databasfält som text i ett textfält i VB.

Ex OrderId:OrderDatum:Land från SQLite sample databasen
1054 : 28-May-1996 : Argentina
11019 : 13-May-1996 : Argentina
10986 : 29-Apr-1996 : Argentina

Skapade ett formulär med en textbox med scrollbar txtResult och en knapp btnQry bakom knappens Click event ligger:

Private Sub btnQry_Click()
Dim objConn As SQLiteDB.Connection
Dim objRs As SQLiteDB.Recordset
Dim i As Integer, j As Integer

Set objConn = New SQLiteDB.Connection
objConn.Open "C:\SQLite\sqlite\data\nwind.db"

Set objRs = objConn.Execute("SELECT OrderId, OrderDate, ShipCountry FROM Orders ORDER BY ShipCountry")

While objRs.EOF = False
txtResult.Text = txtResult.Text & objRs.Value("OrderId") & " : " & _
objRs.Value("OrderDate") & " : " & objRs.Value("ShipCountry") & vbCrLf
objRs.MoveNext
txtResult.Refresh
Wend

Set objRs = Nothing
Set objConn = Nothing
End Sub

En massa rader spottas ut i txtResult när du trycker på knappen.
Citera
2006-11-21, 17:55
  #3
Medlem
freddags avatar
Citat:
Ursprungligen postat av Bigeard
Dim objConn As SQLiteDB.Connection

Denna funkar inte..
Citera
2006-11-22, 12:42
  #4
Medlem
Bigeards avatar
Citat:
Ursprungligen postat av freddag
Denna funkar inte..

Du måste ladda ner SQLite filerna för Win32 från hemsidan + köra regsvr32 på dll filen sen kan du referera till den i ditt VB6 projekt. Efter detta ska det funka, annars posta igen!
Citera
2006-11-22, 14:10
  #5
Medlem
freddags avatar
tack så mycket, men vilken hemsida och vilken dll fil? om man laddar hem nyaste sqlite från sqlite.org får man ju bara hem en exe fil..

fick hem nån sqlite.dll fil från nån annastans med den gick inte att köra regsvr32 på (stog nått om couldnt find entry point).

förklara gärna lite mer i detalj hur man gör.
Citera
2006-11-25, 04:28
  #6
Medlem
Bigeards avatar
Citat:
Ursprungligen postat av freddag
tack så mycket, men vilken hemsida och vilken dll fil? om man laddar hem nyaste sqlite från sqlite.org får man ju bara hem en exe fil..

fick hem nån sqlite.dll fil från nån annastans med den gick inte att köra regsvr32 på (stog nått om couldnt find entry point).

förklara gärna lite mer i detalj hur man gör.

Ber om ursäkt, jag har aldrig använt SQLite förut utan laddade ner ett par filer och svängde ihop koden på 20 min, jag har råkat blanda ihop de nedladdade filerna, den jag använde heter "SQLite DB Free" är gratis och funkar som en enkel ADO ersättare fast mot SQLite.

www.terrainformatica.com/sqlitedb/downloads.whtm (längst ner på sidan)
Citera
2006-11-29, 00:32
  #7
Medlem
freddags avatar
[quote=Bigeard]

While objRs.EOF = False[indent]txtResult.Text = txtResult.Text & objRs.Value("OrderId") & " : " & _
objRs.Value("OrderDate") & " : " & objRs.Value("ShipCountry") & QUOTE]


Tackar så mycket, allt fungerar.. fast det fungerar inte med objRs.Value("OrderId").

Däremot om man skriver objRs.Value(1) så returnerar den "OrderId"... inte direkt vad man vill åt. Vet du hur man skulle kunna få ut svaret istället? I vilken variabel gömmer sig det jag vill åt..
Citera
2006-11-29, 12:16
  #8
Medlem
freddags avatar
Det har löst sig, glömde köra .movenext

tack som fan Big!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback