Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriffsverletzung mit ZEOS-Komponenten (https://www.delphipraxis.net/150916-zugriffsverletzung-mit-zeos-komponenten.html)

RalfE 30. Apr 2010 10:07

Datenbank: Firebird • Version: 2.0.5.13206 • Zugriff über: ZEOS-Komponenten 6.6.6

Zugriffsverletzung mit ZEOS-Komponenten
 
Hallo,

ich bin am Testen, greife mit Delphi 7 und ZEOS-Komponenten(6.6.6)
auf Firebird (2.0.5.13206) zu.

Meine Test-Stored Procedure:

Code:
Create Procedure MyTest
(I_Par : Integer)
Returns
(R_Wert Integer)
AS
Begin

R_Wert = 2 * I_Par;
End
------------------------------

Unter Delphi:
Delphi-Quellcode:

Cl_Connection := TZConnection.Create(Self);
Cl_Connection.Protocol := 'firebird-2.0';
Cl_Connection.HostName := 'PCTest' ;
Cl_Connection.Database := 'C:\Datenbanken\test_1.gdb';
Cl_Connection.User := 'SYSDBA';
Cl_Connection.Password := 'masterkey';
Cl_StoredProc := TZStoredProc.Create(Self);
With Cl_StoredProc Do
Begin
StoredProcName := 'MyTest';
Params.Clear;
With Params.CreateParam(ftInteger,'I_Par',ptInput) do AsInteger := 0;
With Params.CreateParam(ftInteger,'R_Wert',ptOutput) do AsInteger := 0;
Connection := Cl_Connection;
End;
Cl_Connection.Connect;

----------------------------------------------------

Wert abfragen :

Code:


Delphi-Quellcode:
If Cl_Connection.InTransaction Then
Cl_Connection.Commit;
Cl_Connection.StartTransaction;
With Cl_StoredProc Do
Begin
Params[0].Value := StrToIntDef(Edit1.Text,2);
ExecProc;
Edit2.Text := IntToStr(Params[1].Value) ;
End;
Cl_Connection.Commit;
Cl_StoredProc.Close;

Bei Aufruf execProc kommt dann die Exception .
Warum ?

Mit Open und FieldByName bekomme ich immer 0.

Wenn ich aber eine SP aufrufe ohne Rückgabewerte funktioniert ExecProc .

Gruß

RalfE

hoika 30. Apr 2010 10:12

Re: Zugriffsverletzung mit ZEOS-Komponenten
 
Hallo,

tja, du musst ja auch Open statt ExecProc benutzen.

Siehe dazu auch
1

Dort nach Stored Procedures mit einer Ergebnismenge suchen.


Update:
Du hast ja Open genommen ...

Vielleicht ist es ja dann ParamByName und nicht FieldByName


Heiko

RalfE 30. Apr 2010 12:11

Re: Zugriffsverletzung mit ZEOS-Komponenten
 
Hallo,

der Tip hat leider nicht funktioniert.

Gruß

RalfE

hoika 30. Apr 2010 12:14

Re: Zugriffsverletzung mit ZEOS-Komponenten
 
Hallo,

dann solltest du eine neuere ZEOS nehmen,
ist wahrscheinlich ein Bug.


1


Heiko

DeddyH 30. Apr 2010 13:04

Re: Zugriffsverletzung mit ZEOS-Komponenten
 
Wo soll es denn nun weitergehen, hier oder dort?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.

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