Print Thread
Muliple Output parameters in procedure
#3858 09/03/02 06:00 PM
Joined: Sep 2002
Posts: 2
Stockholm,Sweden
D
Member
OP Offline
Member
D
Joined: Sep 2002
Posts: 2
Stockholm,Sweden
Since I upgraded to Delphi 6 and doa 3.4.6.1 I get "Invalid variant type" errors on a procedure with more than one output parameter when using named parametermode. This was not a problem before.
I can't see i'm doing anything wrong, and it works on XP (my machine) but not on NT4/2000!
Example code:
procedure TForm1.Button2Click(Sender: TObject);
var
params, params2: Variant;
begin
{CREATE OR REPLACE PROCEDURE testvar1(pin NUMBER,pout OUT VARCHAR) IS
BEGIN
pout := pin;
END;}

packagesf.ParameterMode := pmNamed;
params := VarArrayCreate([1,4],varVariant);
params[1] := 'pin'; //row number
params[2] := 1;
params[3] := 'pout';
params[4] := parstring;
PackageSF.CallProcedure('testvar1', params);
edit1.Text := PackageSF.GetParameter( 1) ;
// works on all machines

{CREATE OR REPLACE PROCEDURE testvar(pin NUMBER,pout OUT VARCHAR,pout2 OUT varchar) IS
BEGIN
pout := pin;
END;}
params2 := VarArrayCreate([1,6],varVariant);
params2[1] := 'pin'; //row number
params2[2] := 1;
params2[3] := 'pout';
params2[4] := parstring;
params2[5] := 'pout2';
params2[6] := parstring;
PackageSF.CallProcedure('testvar', params2);
// invalid variant type on NT4/2000
// works fine on my XP development machine
edit1.Text := PackageSF.GetParameter( 1)
end;

Bug?

Re: Muliple Output parameters in procedure
#3859 09/04/02 10:00 PM
Joined: Aug 1999
Posts: 22,217
Member
Offline
Member
Joined: Aug 1999
Posts: 22,217
This seems like a Delphi 6 variant bug. As a workaround you can use '' instead of parString:[quote]
Code
params2 := VarArrayCreate([1,6],varVariant);
params2[1] := 'pin'; //row number
params2[2] := 1;
params2[3] := 'pout';
params2[4] := '';
params2[5] := 'pout2';
params2[6] := '';
[/quote]
We may have a workaround in Direct Oracle Access shortly. If you're interested in a pre-release of this fix, let me know.

------------------
Marco Kalter
Allround Automations


Marco Kalter
Allround Automations
Re: Muliple Output parameters in procedure
#3860 09/06/02 11:38 AM
Joined: Sep 2002
Posts: 2
Stockholm,Sweden
D
Member
OP Offline
Member
D
Joined: Sep 2002
Posts: 2
Stockholm,Sweden
I changed my code according to the suggested workaround, and it works perfectly! Thanks.


Moderated by  support 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.4
(Release build 20200307)
Responsive Width:

PHP: 7.1.33 Page Time: 0.032s Queries: 13 (0.010s) Memory: 2.5051 MB (Peak: 3.0418 MB) Data Comp: Off Server Time: 2024-05-13 21:50:40 UTC
Valid HTML 5 and Valid CSS