11. august 2001 - 11:47Der er
10 kommentarer og 1 løsning
INSERT INTO i SQL
Jeg har siddet og rodet med lidt SQL i Delphi, og jeg er stødt på et problem. Problemet består i at når jeg vil lægge noget ind i databasen (på en Microsoft SQL Server 7.0), får jeg at vide at de data jeg prøver at lægge ind, ikke er tilladte. Jeg benytter et TQuery, og koden jeg bruger ser sådan ud:
Ja, så vidt jeg ved må man bruge dem i stedet for \'. Man bruger også \" i ASP, og det virker jo fint. Men koden virker heller ikke uden dem. Jeg har prøvet alle de muligheder jeg kan komme i tanke om.
Project prFileSearch.exe raised exeception class EDBEngineError with message \'General SQL error. [Microsoft][ODBC SQL Server Driver][SQL Server]The name \'arcldr.exe\' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.\'. Process stopped. Use Step or Run to continue.
Det er hvad den skriver, og \'arcldr.exe\' er det filnavn variablen filename indeholder.
Den skriver at den ikke ser arcldr.exe som en string, fordi du skal havde det stående sådan i dit statement \'arcldr.exe\' og det for du ved at putte \'\' to på i dein delphi kode, eller også laver du det med paramters i stedet :
Selvfølgelig kan man gøre som martin skriver, men har du prøvet Query1.SQL.Add(\'INSERT INTO filarkiv (filnavn, fil_sti) VALUES(\'\'\' + filename + \'\'\',\'\'\' + filepath + \'\'\')\'); Beskeden betyder - groft sagt - at du mangler stroffer :)
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.