AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zugriffsverletzung mit ZEOS-Komponenten
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung mit ZEOS-Komponenten

Ein Thema von RalfE · begonnen am 30. Apr 2010 · letzter Beitrag vom 30. Apr 2010
Antwort Antwort
RalfE

Registriert seit: 30. Apr 2010
25 Beiträge
 
#1

Zugriffsverletzung mit ZEOS-Komponenten

  Alt 30. Apr 2010, 10:07
Datenbank: Firebird • Version: 2.0.5.13206 • Zugriff über: ZEOS-Komponenten 6.6.6
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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Zugriffsverletzung mit ZEOS-Komponenten

  Alt 30. Apr 2010, 10:12
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
Heiko
  Mit Zitat antworten Zitat
RalfE

Registriert seit: 30. Apr 2010
25 Beiträge
 
#3

Re: Zugriffsverletzung mit ZEOS-Komponenten

  Alt 30. Apr 2010, 12:11
Hallo,

der Tip hat leider nicht funktioniert.

Gruß

RalfE
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Zugriffsverletzung mit ZEOS-Komponenten

  Alt 30. Apr 2010, 12:14
Hallo,

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


1


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Zugriffsverletzung mit ZEOS-Komponenten

  Alt 30. Apr 2010, 13:04
Wo soll es denn nun weitergehen, hier oder dort?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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