Avatar billede shjdsi Nybegynder
11. december 2003 - 10:53 Der er 6 kommentarer og
1 løsning

mærkelig sql fejl i vb

Hej!

hvis jeg køre denne sætning i mit ado recordset for jeg følgende fejl

sqlstr = "select state,name from Queue where Name = Backup"

fejl
Run-time errror'-2147217900(80040e14)':
[Microsoft][ODBC SQL Server Driver][SQL Server] Invalid column name 'Backup'.


Det mærkelige er at jeg kan sagtens udføre den direkte i databasen fra isql

hvis jeg i min vb code bare skriver select * from Queue så parser den det også uden problemer men where clause ser ud til at ikke blive fortolket. ?

Nogen der har et bud.
Avatar billede erikjacobsen Ekspert
11. december 2003 - 10:55 #1
sqlstr = "select state,name from Queue where Name = 'Backup'"
Avatar billede martin_moth Mester
11. december 2003 - 10:57 #2
http://www.w3schools.com/sql/sql_where.asp

Drop mellemrum og indsæt ' som det står i ovenstående link

SQL er ret følsomt for skrivefejl, så tjek syntaksen på de forskellige muligheder før du bruger dem :o)
Avatar billede shjdsi Nybegynder
11. december 2003 - 11:03 #3
Jeg har prøvet begge muligheder, jeg poster lige koden , det er i et class modul. Jeg får stadig fejlen ? :-( er der forskellig syntax alt efter hvilken odbc driver man connecter med, den skal vel kunne fortolke det ?
jeg køre opå mod en sybase enterprise ASE 12-5 og kan som sagt godt lave simple select statements som select name from employee etc...
Private Function CheckQueue(QueueName)
Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset

Set Conn = New ADODB.Connection
Set rs = New ADODB.Recordset
strConn = "Driver={SQL Server}; Server=minserver; Option=16834; Database=mindb;"

Conn.Open strConn, "minuser", "mitpasswd"
Dim testQueue As Byte

'sqlstr = "select name,id,state from Queue where name = " & QueueName & ""
sqlstr = "select state,name from Queue" _
          & " where Name = 'Backup'"
      Debug.Print sqlstr
rs.Open sqlstr, Conn
Do While Not rs.EOF
   
      testQueue = rs!State
        rs.MoveNext
        DoEvents
   
    Loop
rs.close
End Function
Avatar billede martin_moth Mester
11. december 2003 - 11:08 #4
Hvis du ikke får fejl så længe du ikke har WHERE Name = 'Backup' med, må fejlenen logisk set ligge i WHERE Name = 'Backup'

Har du prøvet at droppe mellemrummene?

WHERE Name='Backup'

Har du tjekket at Name og Backup er stavet korrekt?
Avatar billede martin_moth Mester
11. december 2003 - 11:14 #5
Alle versioner af SQL understøtter WHERE, så det er bare et spørgsmål om at lege lidt med det til det rigtige dukker op.
Avatar billede shjdsi Nybegynder
11. december 2003 - 11:17 #6
Jeg fik det til at virke med

  sqlstr = "select name,id,state from Queue" _
    & " where name = '" & QueueName & "'"

Så det var mellemrummet ! hvor er den følsom :-)I
Avatar billede martin_moth Mester
11. december 2003 - 11:26 #7
Det skrev jeg jo...

:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester