Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Oledbconnection between C# and .DBC can read output para
Message
From
10/05/2008 08:30:15
 
 
To
10/05/2008 00:19:35
General information
Forum:
Visual FoxPro
Category:
Client/server
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01316082
Message ID:
01316217
Views:
23
Hi,

Doesn't look like this is doable. VFPOLEDB chokes when the Parameter.Direction is Output. I'd assume that 'Q0P0' is an internal VFPOLEDB variable ('Query 0 Parameter 0'?) - if you try with a second parameter as out instead of the first it becomes 'Q0P1'. Found a couple of posts on the web with the same issue but no solutions....

Regards,
Viv

>Yes, no compile error but the variable is not being changed... thanks anyway. Maybe somebody else who knows about this?
>
>T.I.A.
>
>>Its supposed to use the @ sign to change the value of the variable.
>Yes - to define it as an out. But the name of the parameter in the collection is "iRetorno" not "@iRetorno"
>>But i already tried with @ and without @ and none works.
>Works for me (i.e. no compile error)
>
>>
>>>Hi,
>>>Shouldn't it be:
>>> cmdCommand.Parameters["iRetorno"].Direction = ParameterDirection.Output;
>>>Hi all, i have this code in C#: that opens a connection to a .dbc and execute a stored procedure, i need 1 parameter be changed on procedure and return to C# with a new value, the resultset is working ok.
>>>
>>> private void Button1_Click(object sender, EventArgs e)
>>> {
>>> // Create the Connection
>>> Int32 iRetorno = 1;
>>> OleDbConnection cnnConnection = new OleDbConnection(connectionStatement);
>>> // Create the command
>>> OleDbDataAdapter dx = new OleDbDataAdapter();
>>> DataTable dt = new DataTable();
>>> OleDbCommand cmdCommand = new OleDbCommand("test", cnnConnection);
>>> cmdCommand.CommandTimeout = cnnConnection.ConnectionTimeout;
>>> cmdCommand.CommandType = CommandType.StoredProcedure;
>>> try
>>> {
>>> cnnConnection.Open();
>>> cmdCommand.Transaction = cnnConnection.BeginTransaction();
>>> cmdCommand.Parameters.Add("iRetorno", OleDbType.Integer, 32).Value = 4;
>>> cmdCommand.Parameters["@iRetorno"].Direction = ParameterDirection.Output; --> this is generating error: Variable Q0P0 is not found
>>> dx.SelectCommand = cmdCommand;
>>> int nreg = dx.Fill(dt);
>>> //ax =cmdCommand.ExecuteScalar();
>>> //MessageBox.Show("Retornado: ? " + ax.ToString());
>>> cnnConnection.Close();
>>> }
>>> catch (Exception Ex)
>>> {
>>> MessageBox.Show(Ex.Message);
>>> }
>>> }
>>>
>>>this is the stored procedure in my database:
>>>
>>>PROCEDURE test
>>>PARAMETERS iRetorno as Integer
>>>CLOSE TABLES ALL
>>>SELECT * FROM class1 WHERE pkeyclass1="0O70WYR5U8" INTO CURSOR query1
>>>iRetorno=444 &&dummy number to see if it is changed when "returning" to C#
>>>RETURN SETRESULTSET("query1")
>>>ENDPROC
>>>
>>>I need both, the resultset and the variable, the resultset is working fine but the parameter output that i need to be changed on the procedure and returned to C# changed is not working. Any ideas?
>>>T.I.A.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform