Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi EXECSQL verursacht eine Exception bei Zugriff erneutem Zugriff auf Tabelle (https://www.delphipraxis.net/160267-execsql-verursacht-eine-exception-bei-zugriff-erneutem-zugriff-auf-tabelle.html)

nachtstreuner 5. Mai 2011 11:19

Datenbank: mySQL • Version: 4 • Zugriff über: ZEOS

EXECSQL verursacht eine Exception bei Zugriff erneutem Zugriff auf Tabelle
 
Hallo DB Experten,

folgenden CODE für ich aus, der Datensatz wird auch korrekt in die Tabelle geschrieben:
Delphi-Quellcode:
with dataM do begin
      SQLTEXT := 'INSERT into tbl_mailtext SET TEXT = :sMAILTEXT, SUCHTEXT = :sSUBJEKT';
      zQUeryMailTExt.SQL.Clear;
      zQueryMailtext.SQL.Text := SQLTEXT;
      zQueryMailText.ParamByName('sMAILTEXT').AsString := suiMemoMailtext.Text;
      zQUeryMailText.ParamByName('sSUBJEKT').AsString := suiEditBETREFF.Text;

      zQUeryMailText.ExecSQL;

    end;
Wenn ich aber danach auf eine DBLookup Komponete zugreifen möchte erhalte ich sofort die Fehlermeldung:

Can not open Resultset !!!

Stirnrunzel :roll:

Es gibt bestimmt gutgemeinte Ratschläge hierzu. Schon mal meinen besten dank

mkinzler 5. Mai 2011 11:26

AW: EXECSQL verursacht eine Exception bei Zugriff erneutem Zugriff auf Tabelle
 
Für den Lookup verwendest du aber ein anderes DataSet; oder?

nachtstreuner 5. Mai 2011 11:45

AW: EXECSQL verursacht eine Exception bei Zugriff erneutem Zugriff auf Tabelle
 
mKinzler, besten Dank für den Tip.

hätte auch selbst drauf kommen können.

Habe zwar auch eine Lösung gefunden, aber Deine ist natürlich eleganter.

Hier meine Änderung:

Delphi-Quellcode:
 with dataM do begin
      SQLTEXT := 'INSERT into tbl_mailtext SET TEXT = :sMAILTEXT, SUCHTEXT = :sSUBJEKT';
      zQUeryMailText.SQL.Clear;
      zQUeryMailText.SQL.Text := SQLTEXT;
      zQUeryMailText.ParamByName('sMAILTEXT').AsString := suiMemoMailtext.Text;
      zQUeryMailText.ParamByName('sSUBJEKT').AsString := suiEditBETREFF.Text;

      zQUeryLookupMail.ExecSQL;

      // hier den SQL Select nochmal neu absetzen
      ZQueryMailText.SQL.Clear;
      zQueryMailtext.SQL.Text := 'SELECT * from tbl_mailtext';
      zQueryMailtext.Active := true;
Werde aber deinen Vorschlag nehmen, da er mit Sicherheit weniger Probleme nach sich zieht.

Danke nochmal:)

mkinzler 5. Mai 2011 12:15

AW: EXECSQL verursacht eine Exception bei Zugriff erneutem Zugriff auf Tabelle
 
Es sollte ein Refresh reichen

DeddyH 5. Mai 2011 12:16

AW: EXECSQL verursacht eine Exception bei Zugriff erneutem Zugriff auf Tabelle
 
Mal etwas anderes: wozu das Clear, wenn Du anschließend den kompletten Text setzt?

mkinzler 5. Mai 2011 12:19

AW: EXECSQL verursacht eine Exception bei Zugriff erneutem Zugriff auf Tabelle
 
Und warum setzt du die Abfrage immer neu? Es reicht die Parameter neu zu setzen.

DeddyH 5. Mai 2011 12:31

AW: EXECSQL verursacht eine Exception bei Zugriff erneutem Zugriff auf Tabelle
 
Das auch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 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