Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Syntax Error? Was ist falsch? (https://www.delphipraxis.net/45729-sql-syntax-error-ist-falsch.html)

Gollum 11. Mai 2005 14:49

Re: SQL Syntax Error? Was ist falsch?
 
Hallo,

das einzige was mit jetzt noch einfällt ist, dass Probleme mit dem Feld Name bestehen. Da die ADOQuery auch eine Eigenschaft gleichen Namens besitzt, kann es zu Namenskonflikten kommen.

Hilft folgendes:
Delphi-Quellcode:
...
Parameters.ParamByName('p3').Value:=StrPas(ARDRecord.Name);
...

EvilCodein 11. Mai 2005 14:57

Re: SQL Syntax Error? Was ist falsch?
 
Liste der Anhänge anzeigen (Anzahl: 1)
aber die beiden fehler treten doch schon hier auf (beim debuggen).

Hier schau mal...

Gollum 11. Mai 2005 15:02

Re: SQL Syntax Error? Was ist falsch?
 
Hallo,

in Deinem Postin schreibts Du, Du hättest es jetzt so gemacht:
Delphi-Quellcode:
  ...
  Parameters.ParamByName('p1').Value:=StrPas(ID);
  ...
In Deiner Debug-Übersicht sieht der Code aber so aus:
Delphi-Quellcode:
  ...
  Parameters.ParamByName('p1').Value:=ID;
  ...
Was ist jetzt richtig? Da Du die ID auch als Array[1..13] of Char deklariert hast, musst Du diese ebenfalls mit StrPas(ID) umwandeln.

EvilCodein 11. Mai 2005 15:09

Re: SQL Syntax Error? Was ist falsch?
 
:wiejetzt:

Ich wollte dir damit sagen, das beides zu einem Fehler führt:

Zitat:

Das Problem ist jetzt bekomme ich diese Fehlermeldung:
[Error] EDMUnit.pas(354): Incompatible types: 'Array' and 'PAnsiChar'

Wenn ich die Funktion StrPas(Record) weglasse bekomme ich diese:
[Error] EDMUnit.pas(354): Incompatible types: 'Variant' and 'Array'
Die erste Fehlermeldung mit StrPas() die zweite ohne StrPas(). :coder2:

EvilCodein 11. Mai 2005 16:13

Re: SQL Syntax Error? Was ist falsch?
 
Hat keiner mehr eine Idee? ich brauche das unbedingt... :cry:

mschaefer 11. Mai 2005 16:54

Re: SQL Syntax Error? Was ist falsch?
 
Moin, moin,

Delphi-Quellcode:

Clients.SQL.Add(  'INSERT INTO Clients
                   ( ID,
                     ClientNumber,
                     Anrede,
                     Name,
                     Street,
                     PLZ,
                     City,
                     HomePhone,
                     MobilePhone )
                     VALUES
                     ( "",
                       " '+ ARDRecord.ID     +' " ,
                       " '+ ARDRecord.Name   +' " ,
                       " '+ ARDRecord.Strasse +' " ,
                       " '+ ARDRecord.PLZ    +' " ,
                       " '+ ARDRecord.Ort    +' " ,
                       " '+ ARDRecord.Tel    +' " ,
                       " '+ ARDRecord.Mobil  +' " );'
               
                 );
Erstmal so probieren, die überflüssigen Leerzeichen kannst Du später dann entfernen, so sieht man es aber besser.
Über größere Neuerungen kann man sich immernoch unterhalten, aber funktionieren sollte das schon.

Grüße // Martin

Sharky 11. Mai 2005 16:55

Re: SQL Syntax Error? Was ist falsch?
 
Hai Du,

wäre es möglich auch noch zu sagen welcher Fehler gemeldet wird?

[Edit]Sorry. Ich war zu schnell :cry: Ich habe nur dein Posting gesehen und nicht die erste Seite des Threas beachtet! *Noch einmal "Tschuldigung" sagt[/EDIT]

shmia 11. Mai 2005 16:55

Re: SQL Syntax Error? Was ist falsch?
 
Dein TARDRecord ist Technik von gestern.
So speichert man heutzutage keine Daten. (Alternativen sind z.B. CSV-Format, XML, ...)
Aber sei's drum.

Du musst deine Daten in TARDRecord erstmal in "anständige" AnsiStrings übersetzen:
Delphi-Quellcode:
// Konvertierungsfunktion
function Get_ID(const r:TARDRecord):AnsiString;
begin
   SetString(Result, PChar(@r.ID[1]), sizeof(r.ID));
end;

Query1.Parameters.ParamByName('p1').Value:= Get_ID(ARDRecord);

EvilCodein 12. Mai 2005 09:37

Re: SQL Syntax Error? Was ist falsch?
 
Danke für eure antworten... ich werds mal ausprobeiren. :coder:

@mschaefer: So hab ich das schon mehrmals probiert und immer nur den SQL Syntax Error bekommen.
--> Der steht schon auf der 1. Seite irgendwo. :gruebel:

Zu der Veralteten Technick: Ich weiß das das schon Schnee von Gestern ist, ich habe aber auch keine andere Idee, wie ich die Fremddatenbank sonst auslesen könnte. Das Ding ist nunmal, das ich sie schon auslesen kann und das ist schonmal viel wert. Ich muss den Scheiß jetzt halt nur noch in die Access DB rein bekommen... :wall:

vielen Dank erstma

codein

mschaefer 12. Mai 2005 09:47

Re: SQL Syntax Error? Was ist falsch?
 
Moin,

schone das Vokabular. Also vom SQL-Syntax ist das in Ordnung. Allerdings hat diese Verfahrensweise einen Haken: Das System bricht zusammen wenn Du Anführungszeichen >"< in einem der Stringwerte hast.
Die müstest Du dann per Pos raussuchen und eben durch Blanks ersetzten, im BeforeInsert.

Grüße // Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz