PG 8 INOUT parameters & ADO
От | Philippe Lang |
---|---|
Тема | PG 8 INOUT parameters & ADO |
Дата | |
Msg-id | 6C0CF58A187DA5479245E0830AF84F421D0C18@poweredge.attiksystem.ch обсуждение исходный текст |
Ответы |
Re: PG 8 INOUT parameters & ADO
|
Список | pgsql-odbc |
Hi, I have a PG 8.1.3 server with the following PL/PERL procedure: ------------ CREATE FUNCTION perl_test(a inout integer, b inout integer, r1 out integer, r2 out integer) AS ' my ($a, $b) = @_; $r1 = $a + $b; $r2 = $a * $b; if ($a > $b) { return {a => $a + 1, b => $b, r1 => $r1, r2 => $r2}; } else { return{a => $b, b => $a + 1, r1 => $r1, r2 => $r2}; } return; ' LANGUAGE plperl; ------------ I'm trying to call this procedure with ADO (latest version under XP), through the ODBC driver version 8.01.02.00, like this: ------------ Public Function perl_test(ByRef a As Integer, ByRef b As Integer, ByRef r1 As Integer, ByRef r2 As Integer) On Error GoTo ErrorHandler Dim oConnection As ADODB.Connection Dim oCommand As ADODB.Command Set oConnection = New ADODB.Connection oConnection.Open "DSN=test" Set oCommand = New ADODB.Command Set oCommand.ActiveConnection = oConnection oCommand.CommandText = "perl_test" oCommand.CommandType = adCmdStoredProc oCommand.Parameters.Append _ oCommand.CreateParameter("a", adInteger, adParamInputOutput, , a) oCommand.Parameters.Append _ oCommand.CreateParameter("b", adInteger, adParamInputOutput, , b) oCommand.Parameters.Append _ oCommand.CreateParameter("r1", adInteger, adParamOutput) oCommand.Parameters.Append _ oCommand.CreateParameter("r2", adInteger, adParamOutput) oCommand.Execute oConnection.Close Set oConnection = Nothing Set oCommand = Nothing Exit Function ErrorHandler: MsgBox "Error Number = " & Err.Number & ", Description = " & _ Err.Description, vbCritical, "GetNameDescFromSampleTable Error" End Function ------------ It fails, with error -2147217887 each time. Is it possible to query stored procedures like this with the PG ODBC driver? Thanks! ---------------------------------- Philippe Lang, Ing. Dipl. EPFL Attik System rte de la Fonderie 2 1700 Fribourg Switzerland http://www.attiksystem.ch Tel: +41 (26) 422 13 75 Fax: +41 (26) 422 13 76
Вложения
В списке pgsql-odbc по дате отправления: