How to query blob columns from Paradox database in c#?
I need to read blob columns from Paradox database using c#.
First, I tried using .Net Framework Data Provider for odbc. Here is my code:
Code: DataSet dsUsers = new DataSet();
string strQuery = "SELECT blobColumn FROM users";
dsUsers = GetNames(strQuery, "Driver={Microsoft Paradox Driver (*.db )}; Default Dir=<directory>;DBQ=<directory>");
Code: private DataSet GetNames(String strQuery, String strConnect)
{
DataSet dsNames = new DataSet();
try
{
OdbcConnection conOdbc = new OdbcConnection(strConnect);
OdbcCommand cmdOdbc = new OdbcCommand(strQuery, conOdbc);
OdbcDataAdapter odaOdbc = new OdbcDataAdapter(cmdOdbc);
odaOdbc.Fill(dsNames);
conOdbc.Open();
conOdbc.Close();
}
catch (OdbcException eExc)
{
}
catch (Exception eExc)
{
}
return dsNames;
}
Note the Paradox driver version is 4.0.
I failed to query the blob column even just the single blob column. I tried placing the blob column after the other non-blob columns, I still got the same error. However I can query non-blob columns of the table with the same code.
I also tried Microsoft OLE DB provider using the following code. There was also an error:
"No value given for one or more required parameters."
Code: System.Data.OleDb.OleDbConnection ParConn;
DataTable schemaTable;
ParConn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\db;"+
"Extended Properties=Paradox 4.x; Persist Security Info=False");
System.Data.OleDb.OleDbCommand myCmd = new System.Data.OleDb.OleDbCommand();
System.Data.OleDb.OleDbDataReader myReader;
myCmd.CommandType = CommandType.Text;
myCmd.Connection = ParConn;
myCmd.CommandText = "SELECT blobColumn FROM users";
ParConn.Open();
myReader = myCmd.ExecuteReader(CommandBehavior.SequentialAccess);
schemaTable = myReader.GetSchemaTable();
ParConn.Close();
I noticed the following statement at
http://msdn.microsoft.com/en-us/library/aa215269%28SQL.80%29.aspx:
Quote:When using the Microsoft OLE DB provider for ODBC with the SQL Server ODBC driver, all BLOB columns should be arranged after columns with other data types in a source rowset. You can use a SELECT statement to rearrange the BLOB columns to the end of the source rowset. The DTS Import/Export Wizard performs this operation automatically.
Can you please tell me what the problem is? Is this the limitation of .Net Framework Data Provider for ODBC or Microsoft OLE DB provider for ODBC?
Again I tried placing the blob column after the other non-blob columns, I still got the same error.
I also tried "Import and Export Data" Wizard shipped with SQL Server Management studio. I couldn't import the table with blob columns.
Your help would very much appreciated.