Jump to content
Xtreme .Net Talk

Recommended Posts

Posted

ok, this is aggrevating. i have the following PostgreSQL function:

 

CREATE OR REPLACE FUNCTION public."MANIPULATEORDERDATAINFO_FUNCTION"(int4, int4, float4, int4, text, int4, text, text, date, text)

RETURNS bpchar AS

'DECLARE

argsItemID ALIAS FOR $1;

argsCopiesOrdered ALIAS FOR $2;

argsCost ALIAS FOR $3;

argsStatusID ALIAS FOR $4;

argsComments ALIAS FOR $5;

argsSupplierID ALIAS FOR $6;

argsRefNum ALIAS FOR $7;

argsInvNum ALIAS FOR $8;

argsDateOrdered ALIAS FOR $9;

argsActionSelector ALIAS FOR $10;

varIncomingOrderID Integer;

BEGIN

IF argsActionSelector = \'EDITITEM\' THEN

SELECT IncomingOrderID

INTO varIncomingOrderID

FROM ORDERITEM

WHERE OrderItemID = argsItemID;

 

UPDATE ORDERITEM

SET CopiesOrdered = argsCopiesOrdered,

Cost = argsCost,

OrderItemStatusID = argsStatusID,

Comments = argsComments

WHERE OrderItemID = argsItemID;

 

UPDATE INCOMINGORDER

SET SupplierID = argsSupplierID,

ReferenceNumber = argsRefNum,

InvoiceNumber = argsInvNum,

DateOrdered = argsDateOrdered...............

...................................................

 

 

which i know works fine because when i call it from CygWin it works just fine. The following is my CygWin output:

 

=> select public."MANIPULATEORDERDATAINFO_FUNCTION"(421, 34, 3.4, 1, 'tes

t', 10, '44', '44', '2004-12-09', 'EDITITEM');

MANIPULATEORDERDATAINFO_FUNCTION

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

 

(1 row)

 

 

However when i try to call it from VB.NET i get an error:

 

'ERROR [HY000] ERROR: function public.ManipulateOrderDataInfo_Function(integer, integer, real, integer, "unknown", integer, "unknown", "unknown", date, "unknown") does not exist'

 

Here is my VB.NET code:

 

 

pgFunctionName = "SELECT public." & Chr(34) & "ManipulateOrderDataInfo_Function" & Chr(34) & "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"

commonConnection = New OdbcConnection

commonConnection.ConnectionString = DBConnectString

 

Try

commonConnection.Open()

Catch Ex As Exception

MsgBox("Failed to connect to PostgreSQL database from CommonFunctions.vb/ManipulateOrderItemInfo.")

End Try 'End Try

 

commonOdbcFunctionCommand = New OdbcCommand

commonOdbcFunctionCommand.Connection = commonConnection

commonOdbcFunctionCommand.CommandType = CommandType.StoredProcedure

commonOdbcFunctionCommand.CommandText = pgFunctionName

 

inputItemID = New OdbcParameter

With inputItemID

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Int

.ParameterName = ""

.Value = argsItemID

End With

 

inputCopiesOrdered = New OdbcParameter

With inputCopiesOrdered

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Int

.ParameterName = ""

.Value = argsCopiesOrdered

End With

 

inputCost = New OdbcParameter

With inputCost

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Real

.ParameterName = ""

.Value = argsCost

End With

 

inputStatusID = New OdbcParameter

With inputStatusID

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Int

.ParameterName = ""

.Value = argsStatusID

End With

 

inputComments = New OdbcParameter

With inputComments

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Text

.ParameterName = ""

.Value = argsComments

End With

 

inputSupplierID = New OdbcParameter

With inputSupplierID

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Int

.ParameterName = ""

.Value = argsSupplierID

End With

 

inputRefNum = New OdbcParameter

With inputRefNum

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Text

.ParameterName = ""

.Value = argsRefNum

End With

 

inputInvNum = New OdbcParameter

With inputInvNum

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Text

.ParameterName = ""

.Value = argsInvNum

End With

 

inputDateOrdered = New OdbcParameter

With inputDateOrdered

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Date

.ParameterName = ""

.Value = argsDateOrdered

End With

 

inputActionSelector = New OdbcParameter

With inputActionSelector

.Direction = ParameterDirection.Input

.OdbcType = OdbcType.Text

.ParameterName = ""

.Value = argsActionSelector

End With

 

commonOdbcFunctionCommand.Parameters.Add(inputItemID)

commonOdbcFunctionCommand.Parameters.Add(inputCopiesOrdered)

commonOdbcFunctionCommand.Parameters.Add(inputCost)

commonOdbcFunctionCommand.Parameters.Add(inputStatusID)

commonOdbcFunctionCommand.Parameters.Add(inputComments)

commonOdbcFunctionCommand.Parameters.Add(inputSupplierID)

commonOdbcFunctionCommand.Parameters.Add(inputRefNum)

commonOdbcFunctionCommand.Parameters.Add(inputInvNum)

commonOdbcFunctionCommand.Parameters.Add(inputDateOrdered)

commonOdbcFunctionCommand.Parameters.Add(inputActionSelector)

 

Try

commonOdbcFunctionReader = commonOdbcFunctionCommand.ExecuteReader(CommandBehavior.Default)

Catch Ex As Exception

MsgBox(Ex.Message)

End Try

 

I am pretty sure that the problem is caused by the DATE parameter inputDateOrdered. I just can't figure out how to pass a date parameter to the PostgreSQL function.

 

Any ideas?

 

Thanks much.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...