|
Infralution Support Support groups for Infralution products
|
View previous topic :: View next topic |
Author |
Message |
namnh81
Joined: 09 Oct 2007 Posts: 2
|
Posted: Tue Oct 09, 2007 3:39 am Post subject: SQL Server 2000 question! |
|
|
Hi infralution team,
I'm trying VDO with SQL Server 2000, i'm using SQLOLEDB provider in ConnectionSSString like:
Provider=SQLOLEDB;Data Source=sserver;Initial Catalog=sdatabase;User ID=suser;Password=spassword;
but my App show error when running line 'if(rs.Count > 0)':
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in SynchIFN.exe
Additional information: Operation is not allowed when the object is closed.
I tried setting CursorLocationEnum.adUseClient, or CursorTypeEnum.adOpenKeyset, or both but that error still exists!
Could you explain to me why it is? I missed something or VDO not use with SQL Server 2000?
Code:
VirtualConnection connection = new VirtualConnection(DBConfiguration.ConnectionSSString, "", "", -1, 5);
//connection.CursorLocation = CursorLocationEnum.adUseClient;
//connection.CursorType = CursorTypeEnum.adOpenKeyset;
VirtualRecordset rs = new VirtualRecordset(connection, "MyTable", "MyID", "SELECT * FROM MyTable WHERE MyID> 10509000") ;
if(!rs.Count > 0)
{
VirtualRecord vr = rs[0];
string sURL = vr["URL"].ToString();
}
Regards |
|
Back to top |
|
|
Infralution
Joined: 28 Feb 2005 Posts: 5027
|
Posted: Tue Oct 09, 2007 6:18 am Post subject: |
|
|
VDO should work with SQL Server. I've just built a small sample project similar to your code to connect to an SQL database and it worked without any issues.
I assume this line:
is a typo error - because it won't compile.
What version of VDO are you using?
Can you give me the full stack trace when the error is thrown?
Normally with VDO you don't put the WHERE clause in the SELECT statement. Instead you set the WhereClause property for the VirtualRecordset and let VDO construct the full query. I don't think this would be causing you issue however. _________________ Infralution Support |
|
Back to top |
|
|
namnh81
Joined: 09 Oct 2007 Posts: 2
|
Posted: Tue Oct 09, 2007 7:54 am Post subject: |
|
|
Thanks you for your immediate response,
sorry about my wrong typing code, I use VDO 1.3. Here is my code:
DBConfiguration.ConnectionSSString="Provider=SQLOLEDB;Data Source = sserver;Initial Catalog =sdatabase;User ID =suser;Password =spassword;";
VirtualConnection connection = new VirtualConnection(DBConfiguration.ConnectionSSString, "", "", -1, 5);
//connection.CursorLocation = CursorLocationEnum.adUseClient;
//connection.CursorType = CursorTypeEnum.adOpenKeyset;
VirtualRecordset rs = new VirtualRecordset(connection, "MyTable", "MyID", "SELECT URL FROM MyTable") ;
rs.WhereClause = "MyID> 10509000";
if(rs.Count > 0)
{
VirtualRecord vr = rs[0];
string sURL = vr["URL"].ToString();
}
An here is stack trace:
************** Exception Text **************
System.Runtime.InteropServices.COMException (0x800A0CC1): Item cannot be found in the collection corresponding to the requested name or ordinal.
at ADODB.Fields.get_Item(Object Index)
at ADODB.InternalFields.get_Item(Object index)
at Infralution.VirtualData.VirtualRecord.GetPrimaryKeyValue(Recordset rs)
at Infralution.VirtualData.VirtualRecord.Initialize(VirtualRecordset virtualRecordset, Recordset rs)
at Infralution.VirtualData.VirtualRecordset.CreateVirtualRecord(Recordset rs)
at Infralution.VirtualData.VirtualRecordset.GetVirtualRecord(Int32 index)
at Infralution.VirtualData.VirtualRecordset.get_Item(Int32 index)
at IFNTool.Form1.button1_Click(Object sender, EventArgs e) in i:\projects\synchifn\form1.cs:line 566
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
............................
Regards |
|
Back to top |
|
|
Infralution
Joined: 28 Feb 2005 Posts: 5027
|
Posted: Tue Oct 09, 2007 9:02 am Post subject: |
|
|
Your stack trace does not seem to match where you say the exception is occurring. If the exception occurs while executing the line:
Then I would expect to see the VirtualRecordset.Count method in the stack trace. Could you perhaps zip your sample project and email it to support@infralution.com so we can see exactly what you are doing.
It might also be worthwhile downloading and installing the latest version of VDO (1.3.1) to confirm that the problem exists in the latest version. _________________ Infralution Support |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|