Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriffsverletzung bei ExecSQL (https://www.delphipraxis.net/46479-zugriffsverletzung-bei-execsql.html)

Voltzi 25. Mai 2005 14:41

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:
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'
Der Fehler tritt auf, seitdem ich den Pfad zu Cover hinzufüge.
Kann mir jemand helfen?

Danke im voraus

MfG
Voltzi

CasaN 25. Mai 2005 14:45

Re: Zugriffsverletzung bei ExecSQL
 
hi,
wie gross (zeichenlänge) ist das feld cover?

Voltzi 25. Mai 2005 14:47

Re: Zugriffsverletzung bei ExecSQL
 
das Feld ist 100 Zeichen groß.

CasaN 25. Mai 2005 14:52

Re: Zugriffsverletzung bei ExecSQL
 
und was passiert wenn du "per hand" diese sql ausführst?

Bernhard Geyer 25. Mai 2005 14:53

Re: Zugriffsverletzung bei ExecSQL
 
1, Schon die richtigen Häckchen in der ODBC-Konfiguration gemacht?
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).

Voltzi 25. Mai 2005 14:57

Re: Zugriffsverletzung bei ExecSQL
 
Ich nutze als DB-Oberfläche MySQL-Front. Da funktioniert der SQL-String.

Voltzi 26. Mai 2005 06:16

Re: Zugriffsverletzung bei ExecSQL
 
Ich habe das ganze mal auf einem anderen System getestet. da funktioniert es.

Bernhard Geyer 3. Jun 2005 12:28

Re: Zugriffsverletzung bei ExecSQL
 
Zitat:

Zitat von Voltzi
Ich habe das ganze mal auf einem anderen System getestet. da funktioniert es.

Haben beide PC's die gleichen Versionen? MyODBC, ADO, ...? Wenn nein - abgleichen!

Voltzi 6. Jun 2005 08:00

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

marabu 6. Jun 2005 08:16

Re: Zugriffsverletzung bei ExecSQL
 
Hallo Voltzi,

versuche es doch mal so:
Delphi-Quellcode:
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;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr.
Seite 1 von 2  1 2      

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