![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBX Kompos
TIBStoredProc und BIGINT Parameter
Hallo :hi:
Ich hab zwar schon gesucht im Forum aber nix gefunden darum hier folgende Frage: Wie - wenn überhaupt - kann man mit den IBX Kompos 64Bit Integer Parameter handhaben? Wenn es nicht gehen sollte, gleich eine zweite Frage: Was ist eine möglichst einfach zu integrierende Alternative die auch paralell zu den schon vorhanden IBX Kompos arbeitet? Okili... Also schonma vielen Dank... Shalom und Gottes Segen |
Re: TIBStoredProc und BIGINT Parameter
Hi,
ganz einfach: Indem Du an stelle der TIBStoredProc eine TIBDataSet verwendest und dort die Procedure entsprechend aufrufst. Ein Wechsel zu anderen Komponenten ist nie einfach. Für mich kommen zur Zeit nur 2 Bibliotheken in die engere Auswahl FIBPlus und UIB, evtl. noch ZEOS wenn man mit mehreren unterschiedlichen DBMS arbeiten muss. GRüße Lemmy |
Re: TIBStoredProc und BIGINT Parameter
Danke Lemmy.
Nun hab ich aber noch folgendes Problem: Wie kann ich auf Output Parameter einer Stored Procedure zugreifen? :gruebel:
Delphi-Quellcode:
Hier die Testprocedure:
var
LRes: Int64; begin IBDataSet1.SelectSQL.Text := 'SELECT * FROM PROC_TEST(:BIIP)';//BigIntInputParam IBDataSet1.Prepare; try IBDataSet1.ParamByName('BIIP').AsInt64 := High(Int64); IBDataSet1.Open; LRes := IBDataSet1.ParambyName('BIO').AsInt64;//Feld 'BIO' nicht gefunden! IBDataSet1.Close; finally IBDataSet1.UnPrepare; end;
SQL-Code:
TIA
CREATE PROCEDURE PROC_TEST (
BII BIGINT) RETURNS ( BIO BIGINT) AS begin /* Procedure Text */ BIO = 9223372036854775807; suspend; end |
Re: TIBStoredProc und BIGINT Parameter
Hi,
'BIO' erhältst du nicht als Parameter, sondern als Feld. Cu, Frank |
Re: TIBStoredProc und BIGINT Parameter
Zitat:
Mit Field[].AsInteger bekomme ich -1 wenn es die 32 Bit übersteigt und .AsInt64 gibs eben nicht.... :| Was einer nun eine Lösung :?: |
Re: TIBStoredProc und BIGINT Parameter
Hi,
bin jetzt gerade etwas überrascht ;-) Ich habe auf jeden Fall schon INT64 aus den IBX rausgequetscht... Ich habe gerade nachgeschaut: IBSQL kann INT64 als Feld. Ich muss mal zu Hause nachschauen wie ich das gemacht habe..... Lemmy |
Re: TIBStoredProc und BIGINT Parameter
Lemmy hat wohl nicht genau genug geguckt. :???:
Delphi-Quellcode:
SP.ParamByName('PARAM1').AsInteger := 1; // Input
SP.ExecProc; // SP ausführen, Rückgabewerte ermitteln LeseFloatDS := SP.FieldByName ('OUT_PARAM').AsFloat; // Rückgabewerte auslesen |
Re: TIBStoredProc und BIGINT Parameter
Zitat:
|
Re: TIBStoredProc und BIGINT Parameter
@hansa: Das es hier um Int64 geht haste wohl übersehen? :wink:
@lemmy: wäre sehr dankbar wenn du es findest und postest :) |
Re: TIBStoredProc und BIGINT Parameter
Zitat:
|
Re: TIBStoredProc und BIGINT Parameter
Zitat:
|
Re: TIBStoredProc und BIGINT Parameter
Zitat:
Zitat:
![]() Wiederholung : den Rest macht As?????? |
Re: TIBStoredProc und BIGINT Parameter
Guten Morgen,
vielleicht liegt es an mir, dass ich nicht kapiere was Du uns mitteilen willst Hansa. Fakt ist halt, dass Teile von IBX (zumindest in der Version die ich vorliegen habe) INT64 nicht unterstützt, da kannst Du noch so oft AS schreiben - IBDataSet/IBStoredProc.ParamByName().AsInt64 gibt's halt nicht... :-) Evtl. gäb es über Umwege die Möglichkeit in Delphi wieder nen Int64 zu bekommen (ASString und denn StrToInt64) aber das habe ich nicht probiert. Ich weiß nur, dass ich es mal gemacht habe - und es hat auch funktioniert. @Meta777: Leider bin ich gestern nicht mehr dazu gekommen meinen Rechner anzumachen.... Lemmy |
Re: TIBStoredProc und BIGINT Parameter
Zitat:
Zitat:
Shalom |
Re: TIBStoredProc und BIGINT Parameter
Hi Meta,
sorry, dass es so lange gedauert hat... Im Moment bin ich total von mir überrascht ;-) Denn ich habe das Problem genau so gelöst:
Delphi-Quellcode:
Damals hatte ich mich einige Zeit mit dem Problem beschäftigt. Allerdings kann es sein, dass neuere Versionen von IBX den Int64 inzwischen besser unterstützen, ich habe die 7.04, da bei mir mal ne neuere Version mit FB 1.5 Probleme gemacht hat.
function GetLargeInt(DataSet:TIBDataset; FieldName:String; FieldValue:TpInt64):boolean;
begin try FieldValue^:=StrToInt64(DataSet.Fields.FieldByName(FieldName).AsString); result:=true; except result:=false; end; end; Grüße Lemmy |
Re: TIBStoredProc und BIGINT Parameter
Hi Lemmy,
danke das du dir noch die Mühe gemacht hast und es rausgesucht hast. Das es so ja mit den StrToInt64 geht, ist es ja auch ok. Aber mal noch ne andere dowe :stupid: Frage: Wo gibts die aktuellen Versionen der IBX? Wir nutzen auch nur die, die mit Delphi 7 mitgeliefert werden... Danke. Shalom und gesegnete Weihnachten :) |
Re: TIBStoredProc und BIGINT Parameter
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 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 by Thomas Breitkreuz