Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Was mache ich falsch? Firebird rattert wie irre auf der HDD (https://www.delphipraxis.net/93696-mache-ich-falsch-firebird-rattert-wie-irre-auf-der-hdd.html)

Gecko 11. Jun 2007 18:07

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Danke mkinzler, das funzt :-) :dp:

Jetzt brauch ich nur noch kurz Hilfe wegen der Implementierung in Delphi
Habe das jetzt so:

Delphi-Quellcode:
storedproc.StoredProcName:='SP_SPAM_IU';
zconnection1.StartTransaction;

for I := 0 to sl.Count-1 do begin

storedproc.ParamByName('WORD').AsString:=sl.Strings[i];
storedproc.ExecProc;

end;

zconnection1.Commit;
Wenn ich das das erste mal ausführe, passiert nichts...Beim Zweiten mal kommt der Fehler: StoredProc Parameter 'WORD' nicht gefunden.

mkinzler 11. Jun 2007 18:09

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
In diesem fall kannst du auch eine normale abfrgae verwenden:
SQL-Code:
select * from SP_SPAM_IU ( <Param>);

Gecko 11. Jun 2007 18:31

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Danke, für sich geht das ,einmal muss ich aber noch nerven:

Das ganze will nicht so ganz mit meiner Transaktion zusammen, es wird immer nur der allererste übergebene Begriff in die SPAM-DB geschrieben,
also der für i=0..welchen grund hat das?

Delphi-Quellcode:
zconnection1.StartTransaction;
qrsecond.SQL.Text:='select * from SP_SPAM_IU (:WORD)';

for I := 0 to sl.Count-1 do begin

qrsecond.ParamByName('WORD').AsString:=sl.Strings[i];
qrsecond.Open;

end;
zconnection1.Commit;

mkinzler 11. Jun 2007 18:34

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Nimm statt .Open .ExecSQL, da du ja auf den Rückgabewert nicht zugreifst.

Gecko 11. Jun 2007 18:36

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Zitat:

Zitat von mkinzler
Nimm statt .Open .ExecSQL, da du ja auf den Rückgabewert nicht zugreifst.

Das hatte ich schon probiert. Da passiert dann aber schlechtweg garnichts.

hoika 11. Jun 2007 21:04

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
>> sl.Strings[i];

Übergibst du überhaupt alle Texte ?


Heiko

Gecko 11. Jun 2007 21:26

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Zitat:

Zitat von hoika
>> sl.Strings[i];

Übergibst du überhaupt alle Texte ?


Heiko

Ja, also mit nem normalen Insert gehts

hoika 12. Jun 2007 08:00

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Hallo,

die SP ist in Ordnung (tested by myself),
beim Aufruf per ExecProc könnte man allerdings das Suspend weglassen.

Hast du mal in der Tabelle selbst nachgesehen,
ob die richtigen Werte drinstehen ?

Und schau dir mal an, ob die SP auch wirklich so
drinsteht wie hier gezeigt.
Viell. hast du ja die SP nicht richtig geändert?


Heiko

Gecko 12. Jun 2007 17:07

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Hallo,


Delphi-Quellcode:
for I := 0 to sl.Count-1 do begin
qrsecond.SQL.Text:='select * from SP_SPAM_IU (:WORD)';
qrsecond.ParamByName('WORD').AsString:=sl.Strings[i];
qrsecond.Open;
end;
zconnection1.Disconnect;
hiermit funktioniert es. An zwei Dingen bin ich jedoch noch am rätseln:

Es geht nicht ohne das Disconnect! Die Daten sind erst nach dem Disconnecten in der DB, was mich sehr stört. Ich will ja nicht dauernd re-connecten.
Weiss jemand warum?

Das zweite was mich stört wäre das es eben keine transaktion ist und firebird bei vielen einträgen wieder auf der HDD rattern wird
Ich hatte ja oben schon einen Transaktionscode gepostet, mit dem wird aber immernur der alle erste eintrag in die DB gepostet :(

mkinzler 12. Jun 2007 18:26

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Das ist ein Problem der Transaktionssteuerung von ZEOS.

Gecko 12. Jun 2007 19:17

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Zitat:

Zitat von mkinzler
Das ist ein Problem der Transaktionssteuerung von ZEOS.

Ist das Problem allgemein bekannt?
Worauf bezieht sich das jetzt? Auf das mit dem Zwangs-Disconnect oder das andere?

mkinzler 12. Jun 2007 19:21

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Zeos verwendet softcommits. Einen richtigen Commit (hardcommit) erhält man nur beim Schließen der Verbindung.

Gecko 12. Jun 2007 19:40

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Zitat:

Zitat von mkinzler
Zeos verwendet softcommits. Einen richtigen Commit (hardcommit) erhält man nur beim Schließen der Verbindung.

Hm nagut..also bleibt mir nichts anderes übrig als disconnect und reconnect richtig?
Warum die Transaktionssche mit StartTransaction bei der Procedure nicht geht, weisst du auch nicht oderr liegt das vllt auch an der Commitsache?

mkinzler 12. Jun 2007 19:42

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Könnte sein. Hast du schon andere Komponenten getestet?

Gecko 12. Jun 2007 19:47

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Zitat:

Zitat von mkinzler
Könnte sein. Hast du schon andere Komponenten getestet?

Ehrlich gesagt nein. Kannst du mir was empfehlen für Firebird (was nicht GPL ist)?

mkinzler 12. Jun 2007 19:49

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Zitat:

Ehrlich gesagt nein. Kannst du mir was empfehlen für Firebird (was nicht GPL ist)?
Warum Keine GPL? Und warum dann Zeos (GPL)?
IBX, MDO, dbExpress, IBO, IBDAC, ...

Gecko 12. Jun 2007 19:57

Re: Was mache ich falsch? Firebird rattert wie irre auf der
 
Zitat:

Zitat von mkinzler
Zitat:

Ehrlich gesagt nein. Kannst du mir was empfehlen für Firebird (was nicht GPL ist)?
Warum Keine GPL? Und warum dann Zeos (GPL)?
IBX, MDO, dbExpress, IBO, IBDAC, ...

ZeOS ist LGPL..würde ich eine GPL Komponente benutzen, müsste ich meine gesamte Anwendung unter die GPL stellen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr.
Seite 2 von 2     12   

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