Hur ser syntaxen ut för att skicka en sql fråga till min ODBC dns?
Odbc
9 svar · 338 visningar · startad av roj
Lite ur huvudet:
Dim conn As Adodb.connection
Dim rs As Adodb.Recordset
conn.open "dsn-namnet"
conn.execute "Sql-sats"
'Har du en sql-fråga som returnerar recordsets kan du istället använda:
rs.open "Sql-fråga", conn
'Resultatet hamnar i rs, som i sin tur kan stegas igenom.
do while not rs.eof
'mickla
loop
rs.close
conn.close
set rs = nothing
set conn = nothing
Glöm inte att ha med en referens till ado i projektet
Var anger jag vilken databas den ska lägga in värdet i då?
Mitt problem e följande jag har ett VB program som skall lägga till en post i min filemaker databas vid namn employee.fp5
Jag har en filemaker ODBC drivrutin och Filemaker e kompatibel med ODBC.
Hur funkar det skriver jag bara ett anrop till ODBC.n och anger databas samt post som skall läggas till eller?
Hur gör jag för att ha med en refererens till ado
Du anger vilken databas i
conn.open "dsn-namnet"
där dsn-namnet är namnet på den dsn du satte upp till din filemaker databas.
under project->references tror jag att du hittar ado 2.x att referera till.
Du kan antingen smälla in värdena direkt med en sql sats:
conn.execute "Sql-sats"
där sql-sats ersätts med typ "Insert into tnamn(...) Values(...);"
eller
rs.open "Select * From tnamn where 1=2"
rs.addnew
rs!kolumnnamne=värde
rs.update
Hmm.. Hittar inte ado 2.x konstigt vad kan anledningen vara?
Referensen heter "Microsoft ActiveX Data Objects 2.x Library". Har du något sådant att lyfta in?
Där va den gutt.. Men det funkar fortfarande inte.. =(
Får inte till open funktionen skriver:
conn.open "DSN=FMPtest;uid=;pwd='1234';database='employee.fp5'"
Min databas heter Employee.fp5 min system-dsn heter FMPtest jag har inget användar namn då man inte kan ha detta i Filemaker Samt jag har lösenord 1234 Någon som vet om jag gör något syntax fel?
Fixa det =)
Så här der det ut..
Private Sub Command1_Click()
Dim cn As New rdoConnection
cn.Connect = "dsn=FMPtest;database=employee;uid=;pwd=1234"
cn.EstablishConnection
cn.Execute "INSERT INTO employee (firstname) VALUES ('dfdfdfåäö');"
cn.Close
End Sub
Det där går ju bra, men du använder RDO, som är ganska gammalt. Jag föreslår att du använder ADO :)