![]() |
Datenbank: MySQL • Version: 4.0.x • Zugriff über: ADOConnection und ODBC-Treiber
Zugriffsverletzung bei ExecSQL
Hi Leute!
Habe folgendes Problem. Ich möchte einen Update- Befehl mit ExecSQL ausführen. Dabei bekomme ich folgende Fehlermeldung: Im Projekt Name.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 1F487CAB in Modul 'msado15.dll'. Schreiben von Adresse 01011008'. Prozess wurde angehalten... Der SQL-Befehl sieht folgendermaßen aus: DelphiCode:
Delphi-Quellcode:
SQL.Add('UPDATE buch SET titel = '''+EdtTitel.Text+''',isbn = '''+EdtISBN.Text+''',key_verlag = '''+IntToStr(key_verlag)+''',auflage = '''+EdtAuflage.Text+''',kaufpreis = '''+EdtPreis.Text+''',kurze_beschreibung = '''+MemoBeschreibung.Text+''',anzahl = '''+EdtAnzahl.Text+''','key_genre = '''+IntToStr(key_genre)+''',key_unterkategorie = '''+IntToStr(key_unterkat)+''',cover = '''+EdtCover.Text+''',aktiv = '''+IntToStr(oeffentlich)+''' WHERE id = '''+IntToStr(idbuch)+'''');
SQL-Code
SQL-Code:
Der Fehler tritt auf, seitdem ich den Pfad zu Cover hinzufüge.
UPDATE buch SET titel = 'IT-Handbuch',isbn = '34-5462-57247-2',key_verlag = '3',
auflage = '4',kaufpreis = '25,00',kurze_beschreibung = 'Inhalt über die gesamte IT-Bildung',anzahl = '3',key_genre = '2',key_unterkategorie = '3',cover = 'C:/Dokumente und Einstellungen/Administrator/Eigene Dateien/Eigene Bilder/Beispiel.jpg', aktiv = '1' WHERE id = '1' Kann mir jemand helfen? Danke im voraus MfG Voltzi |
Re: Zugriffsverletzung bei ExecSQL
hi,
wie gross (zeichenlänge) ist das feld cover? |
Re: Zugriffsverletzung bei ExecSQL
das Feld ist 100 Zeichen groß.
|
Re: Zugriffsverletzung bei ExecSQL
und was passiert wenn du "per hand" diese sql ausführst?
|
Re: Zugriffsverletzung bei ExecSQL
1, Schon die richtigen Häckchen in der
![]() 2, Stell dein Programm auf parametrisierte Anweisungen um. Es könnte sonst sein das sich irgendein Treiberteil z.B. an Slashes verschluckt (z.B. müssen Backslashes bei MySQL escapet werden). |
Re: Zugriffsverletzung bei ExecSQL
Ich nutze als DB-Oberfläche MySQL-Front. Da funktioniert der SQL-String.
|
Re: Zugriffsverletzung bei ExecSQL
Ich habe das ganze mal auf einem anderen System getestet. da funktioniert es.
|
Re: Zugriffsverletzung bei ExecSQL
Zitat:
|
Re: Zugriffsverletzung bei ExecSQL
Beide PC's haben die selben Versionen. Ich habe mal ein neues kleines Programm geschrieben, in dem ich die selbe SQL- Anweisung mit "ExecSQL" ausführe. In diesem Fall hat es funktioniert.
Ist es vielleicht möglich, dass Delphi irgendwelchen Quellcode in meinen Programm- Dateien geschrieben hat, so dass ich "ExecSQL"- Anweisungen auf dem System nicht mehr ausführen kann? MfG Voltzi |
Re: Zugriffsverletzung bei ExecSQL
Hallo Voltzi,
versuche es doch mal so:
Delphi-Quellcode:
Grüße vom marabu
SQL.Text := 'UPDATE buch SET titel = :titel, isbn = :isbn, key_verlag = :key_verlag, auflage = :auflage, kaufpreis = :kaufpreis, kurze_beschreibung = :kurze_beschreibung, anzahl = :anzahl, key_genre = :key_genre, key_unterkategorie = :key_unterkategorie, cover = :cover, aktiv = :aktiv WHERE id = :id';
Parameters.ParamByName('titel').AsString := edtTitel.Text; ... Parameters.ParamByName('id').AsInteger := idBuch; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr. |
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