static public void case_GetDataTypeName() { // Open Connection string strConn = connString; OleDbConnection connCubrid = conn; // Create a test table with 4 columns in various data type string testTable = "table_data_type"; string strDropTable = string.Format("DROP TABLE {0}", testTable); string strCreateTable = string.Format(@"CREATE TABLE {0}(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,col_1 INT, col_2 VARCHAR, col_3 CHAR,col_4 bit);", testTable); string strSqlInsert = string.Format("INSERT INTO {0}(col_1, col_2, col_3) VALUE(123, 'varchar contents', 'a')", testTable); // Execute multiple queries ExecuteMultiQueries(connCubrid, new string[] { strDropTable, strCreateTable }); string strSqlSelect = string.Format("SELECT * FROM {0} ORDER BY id DESC;", testTable); OleDbDataReader OleDbReader = CreateReader(connCubrid, strSqlSelect); // Check for GetDataTypeName returned values // Assert.AreEqual("INT", OleDbReader.GetDataTypeName(0)); // Assert.AreEqual("INT", OleDbReader.GetDataTypeName(1)); // Assert.AreEqual("VARCHAR", OleDbReader.GetDataTypeName(2)); // Assert.AreEqual("CHAR", OleDbReader.GetDataTypeName(3)); Console.WriteLine(OleDbReader.GetDataTypeName(0)); Console.WriteLine(OleDbReader.GetDataTypeName(1)); Console.WriteLine(OleDbReader.GetDataTypeName(2)); Console.WriteLine(OleDbReader.GetDataTypeName(3)); }
void TestDataReader() { int i = 0; string sql = "SELECT * FROM mono_test_table"; Console.WriteLine("Executing SELECT command..."); OleDbCommand cmd = new OleDbCommand(sql, m_cnc); OleDbDataReader reader = cmd.ExecuteReader(); Console.WriteLine(" Recordset description:"); for (i = 0; i < reader.FieldCount; i++) { Console.WriteLine(" Field " + i + ": " + reader.GetName(i) + " (" + reader.GetDataTypeName(i) + ")"); } Console.WriteLine("Reading data..."); i = 0; while (reader.Read()) { Console.WriteLine("Row " + i + ":"); DisplayRow(reader); i++; } reader.Close(); }
}// for adding primary keys public void transfar_data(string tbName, int size, string[] type) { OleDbCommand access_cmd = new OleDbCommand("SELECT * FROM " + tbName, conn); OleDbDataReader access_reader = access_cmd.ExecuteReader(); List <string> data_holder = new List <string>(); List <string> data_holder_rows = new List <string>(); List <string> data_type = new List <string>(); int j = 0; while (access_reader.Read()) { data_holder.Clear(); for (int i = 0; i < size; i++) { if (j == 0) { data_type.Add(access_reader.GetName(i)); } if (access_reader.GetDataTypeName(i).Equals("DBTYPE_DATE")) { string[] temp_date = access_reader.GetValue(i).ToString().Split(' '); if (!String.IsNullOrEmpty(temp_date[0])) { string[] part_date = temp_date[0].Split('/'); string month = get_month(part_date[1]); data_holder.Add("'" + part_date[2] + "-" + month + "-" + part_date[0] + "'"); } else { data_holder.Add("'" + "" + "'"); } } else { string s = access_reader.GetValue(i).ToString(); if (!String.IsNullOrEmpty(s)) { data_holder.Add("'" + s.ToString().Replace("'", "") + "'"); } else { data_holder.Add("NULL"); } } } string temp = "(" + String.Join(",", data_holder) + ")"; data_holder_rows.Add(temp); j++; } string query = "INSERT INTO " + tbName + " (" + String.Join(",", data_type) + ") " + " VALUES " + String.Join(",", data_holder_rows); if (data_holder_rows.Count > 0) { MySqlCommand insrtcmd = new MySqlCommand(query, connection); insrtcmd.ExecuteNonQuery(); } }//for transfaring the data from access to mysql
void DisplayRow(OleDbDataReader reader) { for (int i = 0; i < reader.FieldCount; i++) { Console.WriteLine(" " + reader.GetDataTypeName(i) + ": " + reader.GetValue(i).ToString()); } }
internal override Dictionary <string, DBColumn> GetColumns(string TableName) { Dictionary <string, DBColumn> DBColumns = new Dictionary <string, DBColumn>(); if (conn == null || conn.State != ConnectionState.Open) { OpenDB(); } OleDbCommand cmd = new OleDbCommand(); cmd.Connection = conn; cmd.CommandText = string.Format("Select * From [{0}]", TableName); OleDbDataReader OleDbdr = cmd.ExecuteReader(CommandBehavior.SingleRow); OleDbdr.Read(); DataTable ColumnList = OleDbdr.GetSchemaTable(); int i = 0; foreach (DataRow dr in ColumnList.Rows) { DBColumn dbc = new DBColumn() { Name = dr["ColumnName"].ToString() }; dbc.Ordinal = (int)dr["ColumnOrdinal"]; dbc.Type = dr["DataType"].ToString(); dbc.SqlType = OleDbdr.GetDataTypeName(dbc.Ordinal); dbc.Size = (int)dr["ColumnSize"]; dbc.NumericPrecision = Convert.ToInt32(dr["NumericPrecision"]); dbc.NumericScale = Convert.ToInt32(dr["NumericScale"]); dbc.IsLong = (bool)dr["IsLong"]; dbc.IsNullable = (bool)dr["AllowDBNull"]; dbc.IsUnique = (bool)dr["IsUnique"]; dbc.IsKey = (bool)dr["IsKey"]; dbc.IsAutoIncrement = (bool)dr["IsAutoIncrement"]; DBColumns.Add(dbc.Name, dbc); i++; } // Limit result to the current table string[] restrictionValues = new string[4]; restrictionValues[2] = TableName; ColumnList = conn.GetSchema("Columns", restrictionValues); foreach (DataRow dr in ColumnList.Rows) { DBColumn dbc = DBColumns[dr["COLUMN_NAME"].ToString()]; dbc.HasDefault = (bool)dr["COLUMN_HASDEFAULT"]; dbc.DefaultValue = dr["COLUMN_DEFAULT"] is DBNull ? string.Empty : dr["COLUMN_DEFAULT"].ToString(); dbc.DatetimePrecision = dr["DATETIME_PRECISION"] is DBNull ? 0 : Convert.ToInt32(dr["DATETIME_PRECISION"]); DBColumns[dr["COLUMN_NAME"].ToString()] = dbc; } CloseDB(); return(DBColumns); }
public string GetDataTypeName(int i) { if (SDR != null) { return(SDR.GetDataTypeName(i)); } else { return(ODR.GetDataTypeName(i)); } }
/// <summary> /// Executes a SELECT query /// </summary> /// <param name="SQL">SELECT query</param> /// <param name="Args">Query arguments</param> /// <returns>SQL Rowset</returns> public SQLRow[] ExecReader(string SQL, params object[] Args) { OleDbCommand CMD = OC.CreateCommand(); OleDbDataReader reader = null; CMD.CommandText = SQL; if (Args != null) { for (int i = 0; i < Args.Length; i++) { if (Args[i] is DateTime) { CMD.Parameters.Add(new OleDbParameter("@arg" + i, ((DateTime)Args[i]).ToString(DT_FORMAT))); } else { CMD.Parameters.Add(new OleDbParameter("@arg" + i, Args[i] == null ? DBNull.Value : Args[i])); } } } try { reader = CMD.ExecuteReader(); } catch (Exception ex) { CMD.Dispose(); if (THROW) { throw ex; } } List <SQLRow> SR = new List <SQLRow>(); while (reader.Read()) { SQLRow SRR = new SQLRow(); for (int j = 0; j < reader.FieldCount; j++) { SRR.Add(reader.GetName(j), reader.GetDataTypeName(j), reader.IsDBNull(j) ? null : reader[j]); } SR.Add(SRR); } reader.Close(); reader.Dispose(); CMD.Dispose(); return(SR.ToArray()); }
/// <summary> /// Test basic SQL statements execution /// </summary> private static void Test_Demo_Basic() { using (OleDbConnection conn = new OleDbConnection()) { conn.ConnectionString = TestCasesOld.connString; conn.Open(); (new OleDbCommand("drop table if exists t", conn)).ExecuteNonQuery(); (new OleDbCommand("create table t(id int, str string)", conn)).ExecuteNonQuery(); (new OleDbCommand("insert into t values(1, 'abc')", conn)).ExecuteNonQuery(); using (OleDbCommand cmd = new OleDbCommand("select * from t", conn)) { using (OleDbDataReader reader = cmd.ExecuteReader()) { reader.Read(); Debug.Assert(reader.GetName(0).ToLower() == "id"); Debug.Assert(reader.GetName(1).ToLower() == "str"); Debug.Assert(reader.GetDataTypeName(0) == "DBTYPE_I4"); Debug.Assert(reader.GetDataTypeName(1) == "DBTYPE_LONGVARCHAR"); Debug.Assert(reader.GetFieldType(0).UnderlyingSystemType.Name == "Int32"); Debug.Assert(reader.GetFieldType(1).UnderlyingSystemType.Name == "String"); Debug.Assert(reader.GetValue(0).ToString() == "1"); Debug.Assert(reader.GetString(1) == "abc"); Debug.Assert(reader.GetInt32(0) == 1); Debug.Assert(reader.GetString(1) == "abc"); } } (new OleDbCommand("drop table if exists t", conn)).ExecuteNonQuery(); } }
public string ReadExcelCell(OleDbDataReader reader, int pos) { try { string result = ""; string sectNoDbType = reader.GetDataTypeName(pos);; //单元格类型 switch (sectNoDbType) { case "DBTYPE_WVARCHAR": //文本 result = Common.ReadString(reader, pos); break; case "DBTYPE_R8": //数值 result = Common.ReadDouble(reader, pos).ToString(); break; case "DBTYPE_STR": //字符串 result = Common.ReadString(reader, pos); break; case "DBTYPE_DATE": //时间类型 result = Common.ReadDateTime(reader, pos).ToString("yyyy-MM-dd HH:mm:ss"); break; case "DBTYPE_DECIMAL": //具有固定精度和范围的精确数字值 result = Common.ReadDecimal(reader, pos).ToString(); break; case "DBTYPE_I8": //8 字节带符号的整数 result = Common.ReadInt32(reader, pos).ToString(); break; default: break; } return(result); } catch (Exception e) { Log.GetInstance().WriteLog(e.Message + e.StackTrace, Log.Level.Error); return(""); } }
private string getAbschnittLength(string id) { string select = "select sum(round(sqrt((xe - xa) * (xe - xa) + (ye - ya) * (ye - ya)))) as länge from netz" + " inner join teilstrecke on teilstrecke.ID = netz.ID_CHILD" + " inner join abschnitt on abschnitt.ID = netz.ID_PARENT" + " connect by prior ID_PARENT = ID_CHILD start WITH netz.ID_PARENT = '?'"; string length = ""; OleDbCommand command = new OleDbCommand(select.Replace("?", id), this.connection); OleDbDataReader reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { length = reader.GetDataTypeName(0); } } return(length); }
public List <string> GetExcelConnection(string fileName) { try { var xlsHeader = new List <string>(); if (fileName != "") { string xlPath = HttpContext.Current.Server.MapPath("~/" + fileName); //fileName.Replace("/", @"\"); //@"F:\AKBook.xls"; //location of xlsx file string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + xlPath + ";Extended Properties=\"Excel 12.0 Xml; HDR=YES; IMEX=1;\""; OleDbConnection con = new OleDbConnection(constr); OleDbCommand cmd = new OleDbCommand("select * from [Sheet1$]", con); con.Open(); OleDbDataReader dreader = cmd.ExecuteReader(); while (dreader.Read()) { for (int col = 0; col < dreader.FieldCount; col++) { var columnName = dreader.GetName(col).ToString(); var columnFieldType = dreader.GetFieldType(col).ToString(); // Gets the column type var columnDbType = dreader.GetDataTypeName(col).ToString(); // Gets the column database type var columnValue = dreader.GetValue(col).ToString(); if (!xlsHeader.Contains(columnName)) { xlsHeader.Add(columnName); } } } dreader.Close(); return(xlsHeader); } else { return(xlsHeader); } } catch (Exception ex) { throw ex; } }
public void GetExcelCostVariantData(AspxCommonInfo aspxCommonObj, string fileName) { try { if (fileName != "") { string xlPath = HttpContext.Current.Server.MapPath("~/" + fileName); //@"F:\optionvariant 022113.xls"; //location of xlsx file string constr1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + xlPath + ";Extended Properties=\"Excel 12.0 Xml; HDR=YES; IMEX=1;\""; OleDbConnection con1 = new OleDbConnection(constr1); OleDbCommand cmd1 = new OleDbCommand("select * from [Sheet2$]", con1); con1.Open(); OleDbDataReader dreader1 = cmd1.ExecuteReader(); while (dreader1.Read()) { var costVariantOptions = new List <CostVariantsOptions>(); for (int col = 0; col < dreader1.FieldCount; col++) { var columnName = dreader1.GetName(col).ToString(); var columnFieldType = dreader1.GetFieldType(col).ToString(); // Gets the column type var columnDbType = dreader1.GetDataTypeName(col).ToString(); // Gets the column database type var columnValue = dreader1.GetValue(col).ToString(); costVariantOptions.Add(new CostVariantsOptions() { ColumnName = columnName, ColumnValue = columnValue }); if (dreader1.FieldCount == col + 1) { SaveCostVariantOptionsFromExcel(costVariantOptions, aspxCommonObj); } } } dreader1.Close(); } } catch (Exception ex) { throw ex; } }
public void SetUp() { Exception exp = null; BeginCase("Setup"); try { con = new OleDbConnection(MonoTests.System.Data.Utils.ConnectedDataProvider.ConnectionString); cmd = new OleDbCommand("Select EmployeeID From Employees Where FirstName = 'Oved'", con); cmd.CommandType = CommandType.Text; con.Open(); rdr = cmd.ExecuteReader(); rdr.Read(); typeName = rdr.GetDataTypeName(0); con.Close(); } catch (Exception ex) { exp = ex; } finally { EndCase(exp); } }
// ----------------------------------------------------------------------- // Get the field list from the _fieldsourcequery // ----------------------------------------------------------------------- private int LoadSourceFieldList() { int i; lbFieldName.Items.Clear(); OleDbConnection connection = new OleDbConnection(_connectionstring); if (connection != null) { connection.Open(); string queryString = _fieldsourcequery; OleDbCommand command = new OleDbCommand(queryString, connection); try { OleDbDataReader reader = command.ExecuteReader(); if (reader.Read()) { for (i = 0; i <= (reader.FieldCount - 1); i++) { string fieldname = reader.GetName(i); lbFieldName.Items.Add(fieldname); _fieldtypes.Add(reader.GetDataTypeName(i).ToString()); } } reader.Close(); } catch (Exception ex) { } connection.Close(); return(0); } else { return(-1); } }
public void GetExcelData(List <FinalImportDataInfo> finalInfo, AspxCommonInfo aspxCommonObj, string fileName) { try { if (fileName != "") { string xlPath = HttpContext.Current.Server.MapPath("~/" + fileName); //@"F:\AKBook.xls"; //location of xlsx file string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + xlPath + ";Extended Properties=\"Excel 12.0 Xml; HDR=YES; IMEX=1;\""; OleDbConnection con = new OleDbConnection(constr); OleDbCommand cmd = new OleDbCommand("select * from [Sheet1$]", con); con.Open(); OleDbDataReader dreader = cmd.ExecuteReader(); while (dreader.Read()) { var currencyCode = ""; var itemValues = new List <ItemsValues>(); for (int col = 0; col < dreader.FieldCount; col++) { var columnName = dreader.GetName(col).ToString(); var columnFieldType = dreader.GetFieldType(col).ToString(); // Gets the column type var columnDbType = dreader.GetDataTypeName(col).ToString(); // Gets the column database type var columnValue = dreader.GetValue(col).ToString(); var id = GetAttrubuteId(finalInfo, columnName); var inputId = GetInputTypeId(finalInfo, columnName); var validId = GetValidationTypeId(finalInfo, columnName); if (id > 0) { itemValues.Add(new ItemsValues() { AttributeId = id, InputTypeID = inputId, ValidationTypeID = validId, AttributeValue = columnValue }); } if (columnName == "Category") { itemValues.Add(new ItemsValues() { AttributeId = 0, InputTypeID = 0, ValidationTypeID = 0, AttributeValue = columnValue }); } if (columnName == "CurrencyCode") { currencyCode = columnValue; } if (dreader.FieldCount == col + 1) { int attributeSetId = 2; int itemId = SaveItemFromExcel(itemValues, false, 1, attributeSetId, currencyCode, aspxCommonObj); OracleHandler sqlH = new OracleHandler(); sqlH.ExecuteNonQuery("usp_Aspx_TruncateCategoryForExcel"); SaveItemImage(itemId, itemValues, aspxCommonObj); SaveItemAttributesFromExcel(itemId, attributeSetId, itemValues, aspxCommonObj); CacheHelper.Clear("CategoryInfo" + aspxCommonObj.StoreID + aspxCommonObj.PortalID + "_" + aspxCommonObj.CultureName); CacheHelper.Clear("CategoryForSearch" + aspxCommonObj.StoreID + aspxCommonObj.PortalID + "_" + aspxCommonObj.CultureName); } } } dreader.Close(); GetExcelCostVariantData(aspxCommonObj, fileName); } } catch (Exception ex) { throw ex; } }
/// <summary> /// Test SQL statement with parameters /// </summary> private static void Test_Parameters() { string val32 = "/asp/sns/member/dotcom-20000.asp"; string val40 = val32 + new String(' ', 8); using (OleDbConnection conn = new OleDbConnection()) { conn.ConnectionString = TestCasesOld.connString; conn.Open(); (new OleDbCommand("DROP TABLE IF EXISTS dat_client_ip_log", conn)).ExecuteNonQuery(); (new OleDbCommand("CREATE TABLE dat_client_ip_log (request_url character varying(256) DEFAULT '' NOT NULL)", conn)).ExecuteNonQuery(); //insert 40-chars string (new OleDbCommand("INSERT INTO dat_client_ip_log(request_url) VALUES('" + val40 + "')", conn)).ExecuteNonQuery(); using (OleDbCommand cmd = new OleDbCommand("SELECT request_url, LENGTH(request_url) FROM dat_client_ip_log", conn)) { using (OleDbDataReader reader = cmd.ExecuteReader()) { reader.Read(); Debug.Assert(reader.GetString(0) == val32); Debug.Assert(reader.GetInt32(1) == val40.Length); Debug.Assert(reader.GetDataTypeName(0) == "DBTYPE_VARCHAR"); Debug.Assert(reader.GetDataTypeName(1) == "DBTYPE_I4"); Debug.Assert(reader.GetFieldType(0).UnderlyingSystemType.Name == "String"); Debug.Assert(reader.GetFieldType(1).UnderlyingSystemType.Name == "Int32"); } } //Try the same as above, but with parameters (new OleDbCommand("DROP TABLE IF EXISTS dat_client_ip_log", conn)).ExecuteNonQuery(); (new OleDbCommand("CREATE TABLE dat_client_ip_log (request_url character varying(256) DEFAULT '' NOT NULL)", conn)).ExecuteNonQuery(); //insert 40-chars string using (OleDbCommand cmd = new OleDbCommand("INSERT INTO dat_client_ip_log(request_url) VALUES(?)", conn)) { OleDbParameter parameter = new OleDbParameter("@p1", OleDbType.VarChar, 256); parameter.Value = val40; cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); } using (OleDbCommand cmd = new OleDbCommand("SELECT request_url, LENGTH(request_url) FROM dat_client_ip_log", conn)) { using (OleDbDataReader reader = cmd.ExecuteReader()) { reader.Read(); Debug.Assert(reader.GetString(0) == val32); Debug.Assert(reader.GetInt32(1) == val40.Length); Debug.Assert(reader.GetDataTypeName(0) == "DBTYPE_VARCHAR"); Debug.Assert(reader.GetDataTypeName(1) == "DBTYPE_I4"); Debug.Assert(reader.GetFieldType(0).UnderlyingSystemType.Name == "String"); Debug.Assert(reader.GetFieldType(1).UnderlyingSystemType.Name == "Int32"); } } (new OleDbCommand("DROP TABLE IF EXISTS dat_client_ip_log", conn)).ExecuteNonQuery(); } }
public static int Main(string[] args) { int Result = -1, _ID_; StreamWriter fstr_out = null, fstr_out_866 = null; string currentDirectory = System.Reflection.Assembly.GetExecutingAssembly().Location, tmpString = "log.log", DbfFileName, asciiString, cp866String; if (currentDirectory.IndexOf("bin") != -1) { currentDirectory = currentDirectory.Substring(0, currentDirectory.LastIndexOf("bin", currentDirectory.Length - 1)); } byte[] asciiBytes, cp866Bytes; char[] cp866Chars; #if TEST_DBF_BY_ODBC OdbcConnection odbc_conn = null; OdbcCommand odbc_cmd = null; OdbcDataReader odbc_rdr = null; OdbcDataAdapter odbc_da = null; #endif OleDbConnection conn = null; OleDbCommand cmd = null; OleDbDataReader rdr = null; OleDbDataAdapter da = null; DataTable tmpDataTable = null; object tmpObject; try { try { fstr_out = new StreamWriter(tmpString, false, System.Text.Encoding.GetEncoding(1251)); fstr_out.AutoFlush = true; fstr_out_866 = new StreamWriter(tmpString + "_866", false, System.Text.Encoding.GetEncoding(866)); fstr_out_866.AutoFlush = true; #if TEST_DBF_BY_ODBC || TEST_DBF || TEST_VFP string PathToDbf = Path.Combine(currentDirectory, "dbf"), CommonDbfTableName = "Common", CommonDbfTableSQLCreate = @" create table " + CommonDbfTableName + @"( FInt integer, FChar char(254), FDate1 date, FDate2 date )"; #endif #if TEST_DBF_BY_ODBC if (PathToDbf.EndsWith(Path.DirectorySeparatorChar.ToString())) { PathToDbf = PathToDbf.Remove(PathToDbf.Length - 1, 1); } tmpString = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" + PathToDbf + ";"; odbc_conn = new OdbcConnection(tmpString); odbc_conn.Open(); fstr_out.WriteLine("ConnectionString: " + odbc_conn.ConnectionString); fstr_out.WriteLine("ConnectionTimeout: " + odbc_conn.ConnectionTimeout.ToString()); fstr_out.WriteLine("Database: " + odbc_conn.Database); fstr_out.WriteLine("DataSource: " + odbc_conn.DataSource); fstr_out.WriteLine("Driver: " + odbc_conn.Driver); fstr_out.WriteLine("ServerVersion: " + odbc_conn.ServerVersion); fstr_out.WriteLine("State: " + odbc_conn.State.ToString()); fstr_out.WriteLine(); tmpString = PathToDbf + Path.DirectorySeparatorChar + CommonDbfTableName + ".dbf"; if (File.Exists(tmpString)) { File.Delete(tmpString); } odbc_cmd = odbc_conn.CreateCommand(); odbc_cmd.CommandType = CommandType.Text; odbc_cmd.CommandText = CommonDbfTableSQLCreate; odbc_cmd.ExecuteNonQuery(); odbc_cmd.CommandText = "insert into " + CommonDbfTableName + " (FInt, FChar, FDate1, FDate2) values (1, 'Line# 1 Линия № 1 Лінія № 1', {d'2008-12-31'}, {d'2008-12-31'})"; odbc_cmd.ExecuteNonQuery(); odbc_cmd.CommandText = "insert into " + CommonDbfTableName + " (FInt, FChar) values (?, ?)"; odbc_cmd.Parameters.Clear(); odbc_cmd.Parameters.Add("FInt", OdbcType.Int).Value = 2; odbc_cmd.Parameters.Add("FChar", OdbcType.VarChar).Value = "Line# 2 Линия № 2 Лінія № 2"; odbc_cmd.ExecuteNonQuery(); tmpString = "select * from " + CommonDbfTableName; odbc_cmd = new OdbcCommand(tmpString, odbc_conn); odbc_rdr = odbc_cmd.ExecuteReader(); while (odbc_rdr.Read()) { for (int i = 0; i < odbc_rdr.FieldCount; ++i) { fstr_out.Write(odbc_rdr[odbc_rdr.GetName(i)]); if (i < odbc_rdr.FieldCount) { fstr_out.Write("\t"); } } fstr_out.WriteLine(); } odbc_rdr.Close(); odbc_da = new OdbcDataAdapter(tmpString, odbc_conn); if (tmpDataTable == null) { tmpDataTable = new DataTable(); } odbc_da.Fill(tmpDataTable); ShowStru(tmpDataTable, fstr_out); tmpDataTable.Reset(); odbc_cmd.CommandText = "select * from testtype_1"; fstr_out.WriteLine(); fstr_out.WriteLine("OdbcDataAdapter.FillSchema()"); odbc_da.SelectCommand = odbc_cmd; odbc_da.FillSchema(tmpDataTable, SchemaType.Source); foreach (DataColumn c in tmpDataTable.Columns) { fstr_out.WriteLine(c.ColumnName + ": \"" + c.DataType.ToString() + "\""); } tmpDataTable.Reset(); odbc_rdr = odbc_cmd.ExecuteReader(CommandBehavior.SchemaOnly); fstr_out.WriteLine(Environment.NewLine + "OdbcDataReader.HasRows=" + odbc_rdr.HasRows.ToString()); for (int i = 0; i < odbc_rdr.FieldCount; ++i) { fstr_out.WriteLine(odbc_rdr.GetName(i) + " GetDataTypeName(): \"" + odbc_rdr.GetDataTypeName(i) + "\" GetFieldType(): \"" + odbc_rdr.GetFieldType(i) + "\""); } odbc_rdr.Close(); /* * odbc_cmd.CommandText="insert into testtype_1 (FLogical) values (true)"; * odbc_cmd.ExecuteNonQuery(); * * odbc_cmd.CommandText="update testtype_1 set FLogical=false"; * odbc_cmd.ExecuteNonQuery(); */ try { tmpString = "select * from t"; // t is FoxPro (with cdx) table odbc_cmd.CommandText = tmpString; odbc_rdr = odbc_cmd.ExecuteReader(); odbc_rdr.Close(); } catch (OdbcException eException) { tmpString = string.Empty; for (int i = 0; i < eException.Errors.Count; ++i) { if (tmpString != string.Empty) { tmpString += Environment.NewLine; } tmpString += "Index #" + i + "\t" + "Message: \"" + eException.Errors[i].Message + "\"\t" + "Native: \"" + eException.Errors[i].NativeError.ToString() + "\"\t" + "Source: \"" + eException.Errors[i].Source + "\"\t" + "SQL: \"" + eException.Errors[i].SQLState + "\""; } fstr_out.WriteLine(Environment.NewLine + "OdbcException:" + Environment.NewLine + tmpString + Environment.NewLine); } odbc_conn.Close(); #endif #if TEST_DBF if (PathToDbf.EndsWith(Path.DirectorySeparatorChar.ToString())) { PathToDbf = PathToDbf.Remove(PathToDbf.Length - 1, 1); } tmpString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PathToDbf + ";Extended Properties=dBASE IV;User ID=;Password="******"ConnectionString: " + conn.ConnectionString); fstr_out.WriteLine("ConnectionTimeout: " + conn.ConnectionTimeout.ToString()); fstr_out.WriteLine("Database: " + conn.Database); fstr_out.WriteLine("DataSource: " + conn.DataSource); fstr_out.WriteLine("Provider: " + conn.Provider); fstr_out.WriteLine("ServerVersion: " + conn.ServerVersion); fstr_out.WriteLine("State: " + conn.State.ToString()); fstr_out.WriteLine(); tmpString = PathToDbf + Path.DirectorySeparatorChar + CommonDbfTableName + ".dbf"; if (File.Exists(tmpString)) { File.Delete(tmpString); } cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = CommonDbfTableSQLCreate; cmd.ExecuteNonQuery(); cmd.CommandText = "insert into " + CommonDbfTableName + " (FInt, FChar, FDate1, FDate2) values (1, 'Line# 1 Линия № 1 Лінія № 1', #01/01/2008#, #01/01/2008#)"; cmd.ExecuteNonQuery(); cmd.CommandText = "insert into " + CommonDbfTableName + " (FInt, FChar) values (?, ?)"; cmd.Parameters.Clear(); cmd.Parameters.Add("FInt", OleDbType.Integer).Value = 2; cmd.Parameters.Add("FChar", OleDbType.VarChar).Value = "Line# 2 Линия № 2 Лінія № 2"; cmd.ExecuteNonQuery(); tmpString = "select * from " + CommonDbfTableName; cmd = new OleDbCommand(tmpString, conn); rdr = cmd.ExecuteReader(); while (rdr.Read()) { for (int i = 0; i < rdr.FieldCount; ++i) { fstr_out.Write(rdr[rdr.GetName(i)]); if (i < rdr.FieldCount) { fstr_out.Write("\t"); } } fstr_out.WriteLine(); } rdr.Close(); tmpString = "select * from dbffile"; cmd = new OleDbCommand(tmpString, conn); rdr = cmd.ExecuteReader(); fstr_out.WriteLine(); while (rdr.Read()) { fstr_out.WriteLine(rdr.GetString(rdr.GetOrdinal("BANK"))); } rdr.Close(); if (tmpDataTable == null) { tmpDataTable = new DataTable(); } else { tmpDataTable.Reset(); } if (da == null) { da = new OleDbDataAdapter(cmd); } da.Fill(tmpDataTable); ShowStru(tmpDataTable, fstr_out); tmpDataTable.Reset(); fstr_out.WriteLine(); cmd.CommandText = "select * from testtype_1"; fstr_out.WriteLine(cmd.CommandText); fstr_out.WriteLine(new string('-', cmd.CommandText.Length)); fstr_out.WriteLine(); fstr_out.WriteLine("OleDbDataAdapter.FillSchema()"); da.SelectCommand = cmd; da.FillSchema(tmpDataTable, SchemaType.Source); foreach (DataColumn c in tmpDataTable.Columns) { fstr_out.WriteLine(c.ColumnName + ": \"" + c.DataType.ToString() + "\""); } tmpDataTable.Reset(); fstr_out.WriteLine(); fstr_out.WriteLine("OleDbCommand.ExecuteReader(CommandBehavior.SchemaOnly)"); rdr = cmd.ExecuteReader(CommandBehavior.SchemaOnly); fstr_out.WriteLine("OleDbDataReader.HasRows=" + rdr.HasRows.ToString()); for (int i = 0; i < rdr.FieldCount; ++i) { fstr_out.WriteLine(rdr.GetName(i) + " " + rdr.GetDataTypeName(i) + " " + rdr.GetFieldType(i)); } rdr.Close(); fstr_out.WriteLine(); cmd.CommandText = "select * from testtype_2"; fstr_out.WriteLine(cmd.CommandText); fstr_out.WriteLine(new string('-', cmd.CommandText.Length)); fstr_out.WriteLine(); fstr_out.WriteLine("OleDbDataAdapter.FillSchema()"); da.SelectCommand = cmd; da.FillSchema(tmpDataTable, SchemaType.Source); foreach (DataColumn c in tmpDataTable.Columns) { fstr_out.WriteLine(c.ColumnName + ": \"" + c.DataType.ToString() + "\""); } tmpDataTable.Reset(); fstr_out.WriteLine(); fstr_out.WriteLine("OleDbCommand.ExecuteReader(CommandBehavior.SchemaOnly)"); rdr = cmd.ExecuteReader(CommandBehavior.SchemaOnly); fstr_out.WriteLine("OleDbDataReader.HasRows=" + rdr.HasRows.ToString()); for (int i = 0; i < rdr.FieldCount; ++i) { fstr_out.WriteLine(rdr.GetName(i) + " " + rdr.GetDataTypeName(i) + " " + rdr.GetFieldType(i)); } rdr.Close(); fstr_out.WriteLine(); try { tmpString = "select * from t"; // t is FoxPro (with cdx) table cmd.CommandText = tmpString; rdr = cmd.ExecuteReader(); rdr.Close(); } catch (OleDbException eException) { tmpString = string.Empty; for (int i = 0; i < eException.Errors.Count; ++i) { if (tmpString != string.Empty) { tmpString += Environment.NewLine; } tmpString += "Index #" + i + "\t" + "Message: \"" + eException.Errors[i].Message + "\"\t" + "Native: \"" + eException.Errors[i].NativeError.ToString() + "\"\t" + "Source: \"" + eException.Errors[i].Source + "\"\t" + "SQL: \"" + eException.Errors[i].SQLState + "\""; } fstr_out.WriteLine(Environment.NewLine + "OleDbException:" + Environment.NewLine + tmpString + Environment.NewLine); } cmd.CommandType = CommandType.Text; DbfFileName = "test_ins"; cmd.CommandText = "delete from " + DbfFileName; cmd.ExecuteNonQuery(); cmd.CommandText = "select max(ID) from " + DbfFileName; tmpObject = cmd.ExecuteScalar(); _ID_ = !Convert.IsDBNull(tmpObject) ? Convert.ToInt32(tmpObject) + 1 : 1; cmd.CommandText = "insert into " + DbfFileName + " (ID, FCHAR, DDATE, FNUMERIC) values (?, ?, ?, ?)"; cmd.Parameters.Clear(); cmd.Parameters.Add("ID", OleDbType.Numeric).Value = _ID_; cmd.Parameters.Add("FCHAR", OleDbType.VarChar).Value = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; cmd.Parameters.Add("DDATE", OleDbType.Date).Value = DateTime.Now; cmd.Parameters.Add("FNUMERIC", OleDbType.Numeric).Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "abcdefghijklmnopqrstuvwxyz"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "абвгдежзийклмнопрстуфхцчшщъыьэюя"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "ЁёҐґІіЇїЄє№"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "абвгдежзийклмнопрстуфхцчшщъыьэюя"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "ЁёҐґІіЇїЄє№"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); asciiBytes[2] = 0x0c3; // 0x0a5 (165) -> 0x0c3 (195) Ґ -> Г asciiBytes[3] = 0x0e3; // 0x0b4 (180) -> 0x0e3 (227) ґ -> г asciiBytes[4] = 0x0a1; // 0x0b2 (178) -> 0x0a1 (161) І -> Ў asciiBytes[5] = 0x0a2; // 0x0b3 (179) -> 0x0a2 (162) і -> ў asciiBytes[6] = 0x0b0; // 0x0af (175) -> 0x0b0 (176) Ї -> ° asciiBytes[7] = 0x0b7; // 0x0bf (191) -> 0x0b7 (183) ї -> · asciiBytes[8] = 0x0af; // 0x0aa (170) -> 0x0af (175) Є -> Ї asciiBytes[9] = 0x0bf; // 0x0ba (186) -> 0x0bf (191) є -> ї cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866Chars[7] = (char)0x02219; cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = CP1251ToCP866("Line# 2 Линия № 2 Лінія № 2"); cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); if (!PathToDbf.EndsWith(Path.DirectorySeparatorChar.ToString())) { PathToDbf += Path.DirectorySeparatorChar; } DbfFileName = "test_ADO.dbf"; if (File.Exists(PathToDbf + DbfFileName)) { File.Delete(PathToDbf + DbfFileName); } DbfFileName = Path.GetFileNameWithoutExtension(DbfFileName); cmd.CommandText = "create table " + DbfFileName + "(ID numeric(18,0), FCHAR varchar(254), DDATE date, FNUMERIC numeric(10,4))"; cmd.ExecuteNonQuery(); cmd.CommandText = "select max(ID) from " + DbfFileName; tmpObject = cmd.ExecuteScalar(); _ID_ = !Convert.IsDBNull(tmpObject) ? Convert.ToInt32(tmpObject) + 1 : 1; cmd.CommandText = "insert into " + DbfFileName + " (ID, FCHAR, DDATE, FNUMERIC) values (?, ?, ?, ?)"; cmd.Parameters.Clear(); cmd.Parameters.Add("ID", OleDbType.Numeric).Value = _ID_; cmd.Parameters.Add("FCHAR", OleDbType.VarChar).Value = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; cmd.Parameters.Add("DDATE", OleDbType.Date).Value = DateTime.Now; cmd.Parameters.Add("FNUMERIC", OleDbType.Numeric).Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "abcdefghijklmnopqrstuvwxyz"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "абвгдежзийклмнопрстуфхцчшщъыьэюя"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "ЁёҐґІіЇїЄє№"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "абвгдежзийклмнопрстуфхцчшщъыьэюя"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "ЁёҐґІіЇїЄє№"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); asciiBytes[2] = 0x0c3; // 0x0a5 (165) -> 0x0c3 (195) Ґ -> Г asciiBytes[3] = 0x0e3; // 0x0b4 (180) -> 0x0e3 (227) ґ -> г asciiBytes[4] = 0x0a1; // 0x0b2 (178) -> 0x0a1 (161) І -> Ў asciiBytes[5] = 0x0a2; // 0x0b3 (179) -> 0x0a2 (162) і -> ў asciiBytes[6] = 0x0b0; // 0x0af (175) -> 0x0b0 (176) Ї -> ° asciiBytes[7] = 0x0b7; // 0x0bf (191) -> 0x0b7 (183) ї -> · asciiBytes[8] = 0x0af; // 0x0aa (170) -> 0x0af (175) Є -> Ї asciiBytes[9] = 0x0bf; // 0x0ba (186) -> 0x0bf (191) є -> ї cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866Chars[7] = (char)0x02219; // • cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = tmpString = CP1251ToCP866("Line# 2 Линия № 2 Лінія № 2"); cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); fstr_out_866.WriteLine(tmpString); #if TEST_DBF_JOIN cmd.CommandType = CommandType.Text; /* * cmd.CommandText=@" * select * m.*, * d_l_I.*, * d_l_II.* * from * master m * left outer join det_l_I d_l_I on (d_l_I.Master_ID=m.ID) * left outer join det_l_II d_l_II on (d_l_II.Master_ID=m.ID) and (d_l_II.det_l_I_ID=d_l_I.ID) * order by m.ID, d_l_I.ID, d_l_II.ID * "; */ /* * cmd.CommandText=@" * select * m.*, * d_l_I.*, * d_l_II.* * from * master m * left outer join det_l_I d_l_I on (d_l_I.Master_ID=m.ID) * left outer join det_l_II d_l_II on (d_l_II.Master_ID=d_l_I.Master_ID) and (d_l_II.det_l_I_ID=d_l_I.ID) * order by m.ID, d_l_I.ID, d_l_II.ID * "; */ cmd.CommandText = @" select m.*, d_l_I.*, d_l_II.* from master m join det_l_I d_l_I on (d_l_I.Master_ID=m.ID) join det_l_II d_l_II on (d_l_II.Master_ID=m.ID) and (d_l_II.det_l_I_ID=d_l_I.ID) order by m.ID, d_l_I.ID, d_l_II.ID "; /* * cmd.CommandText=@" * select * m.*, * d_l_I.*, * d_l_II.* * from * master m * join det_l_I d_l_I on (d_l_I.Master_ID=m.ID) * join det_l_II d_l_II on (d_l_II.Master_ID=d_l_I.Master_ID) and (d_l_II.det_l_I_ID=d_l_I.ID) * order by m.ID, d_l_I.ID, d_l_II.ID * "; */ if (da == null) { da = new OleDbDataAdapter(cmd); } else { da.SelectCommand = cmd; } if (tmpDataTable == null) { tmpDataTable = new DataTable(); } else { tmpDataTable.Reset(); } da.Fill(tmpDataTable); tmpDataTable.Reset(); #endif conn.Close(); #endif #if TEST_VFP if (!PathToDbf.EndsWith(Path.DirectorySeparatorChar.ToString())) { PathToDbf += Path.DirectorySeparatorChar; } tmpString = "Provider=vfpoledb.1;Data Source=" + PathToDbf; //Collating Sequence=general"; conn = new OleDbConnection(tmpString); conn.Open(); fstr_out.WriteLine("ConnectionString: " + conn.ConnectionString); fstr_out.WriteLine("ConnectionTimeout: " + conn.ConnectionTimeout.ToString()); fstr_out.WriteLine("Database: " + conn.Database); fstr_out.WriteLine("DataSource: " + conn.DataSource); fstr_out.WriteLine("Provider: " + conn.Provider); fstr_out.WriteLine("ServerVersion: " + conn.ServerVersion); fstr_out.WriteLine("State: " + conn.State.ToString()); fstr_out.WriteLine(); tmpString = PathToDbf + CommonDbfTableName + ".dbf"; if (File.Exists(tmpString)) { File.Delete(tmpString); } cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = CommonDbfTableSQLCreate; cmd.ExecuteNonQuery(); cmd.CommandText = "insert into " + CommonDbfTableName + " (FInt, FChar) values (1, 'Line# 1 Линия № 1 Лінія № 1')"; cmd.ExecuteNonQuery(); cmd.CommandText = "insert into " + CommonDbfTableName + " (FInt, FChar, FDate1, FDate2) values (?, ?, ?, ?)"; cmd.Parameters.Clear(); cmd.Parameters.Add("FInt", OleDbType.Integer).Value = 2; cmd.Parameters.Add("FChar", OleDbType.VarChar).Value = "Line# 2 Линия № 2 Лінія № 2"; cmd.Parameters.Add("FDate1", OleDbType.DBDate).Value = DateTime.Now; cmd.Parameters.Add("FDate2", OleDbType.Date).Value = DateTime.Now; cmd.ExecuteNonQuery(); cmd.CommandText = "insert into test_t3 (FDate1, FDate2, FChar1) values (?, ?, ?)"; cmd.Parameters.Clear(); cmd.Parameters.Add("FDate1", OleDbType.Date).Value = DateTime.Now; cmd.Parameters.Add("FDate2", OleDbType.DBDate).Value = DateTime.Now; cmd.Parameters.Add("FChar1", OleDbType.Char).Value = CP1251ToCP866("Line# 2 Линия № 2 Лінія № 2"); cmd.ExecuteNonQuery(); cmd.CommandText = "insert into test_t3 (FDate1, FDate2, FChar1) values ({12/31/2008},{12/31/2008},'" + CP1251ToCP866("Line# 2 Линия № 2 Лінія № 2") + "')"; cmd.ExecuteNonQuery(); DbfFileName = "test_ins"; cmd.CommandText = "delete from " + DbfFileName; cmd.ExecuteNonQuery(); cmd.CommandText = "select max(ID) from " + DbfFileName; tmpObject = cmd.ExecuteScalar(); _ID_ = !Convert.IsDBNull(tmpObject) ? Convert.ToInt32(tmpObject) + 1 : 1; cmd.CommandText = "insert into " + DbfFileName + " (ID, FCHAR, DDATE, FNUMERIC) values (?, ?, ?, ?)"; cmd.Parameters.Clear(); cmd.Parameters.Add("ID", OleDbType.Numeric).Value = _ID_; cmd.Parameters.Add("FCHAR", OleDbType.VarChar).Value = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; cmd.Parameters.Add("DDATE", OleDbType.Date).Value = DateTime.Now; cmd.Parameters.Add("FNUMERIC", OleDbType.Numeric).Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "abcdefghijklmnopqrstuvwxyz"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "абвгдежзийклмнопрстуфхцчшщъыьэюя"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = "ЁёҐґІіЇїЄє№"; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "абвгдежзийклмнопрстуфхцчшщъыьэюя"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); asciiString = "ЁёҐґІіЇїЄє№"; asciiBytes = System.Text.Encoding.GetEncoding(1251).GetBytes(asciiString); asciiBytes[2] = 0x0c3; // 0x0a5 (165) -> 0x0c3 (195) Ґ -> Г asciiBytes[3] = 0x0e3; // 0x0b4 (180) -> 0x0e3 (227) ґ -> г asciiBytes[4] = 0x0a1; // 0x0b2 (178) -> 0x0a1 (161) І -> Ў asciiBytes[5] = 0x0a2; // 0x0b3 (179) -> 0x0a2 (162) і -> ў asciiBytes[6] = 0x0b0; // 0x0af (175) -> 0x0b0 (176) Ї -> ° asciiBytes[7] = 0x0b7; // 0x0bf (191) -> 0x0b7 (183) ї -> · asciiBytes[8] = 0x0af; // 0x0aa (170) -> 0x0af (175) Є -> Ї asciiBytes[9] = 0x0bf; // 0x0ba (186) -> 0x0bf (191) є -> ї cp866Bytes = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1251), System.Text.Encoding.GetEncoding(866), asciiBytes); cp866Chars = new char[System.Text.Encoding.GetEncoding(866).GetCharCount(cp866Bytes, 0, cp866Bytes.Length)]; System.Text.Encoding.GetEncoding(866).GetChars(cp866Bytes, 0, cp866Bytes.Length, cp866Chars, 0); cp866Chars[7] = (char)0x02219; cp866String = new string(cp866Chars); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = cp866String; cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); cmd.Parameters["ID"].Value = ++_ID_; cmd.Parameters["FCHAR"].Value = CP1251ToCP866("Line# 2 Линия № 2 Лінія № 2"); cmd.Parameters["DDATE"].Value = DateTime.Now; cmd.Parameters["FNUMERIC"].Value = 99.999 * _ID_; cmd.ExecuteNonQuery(); if (tmpDataTable == null) { tmpDataTable = new DataTable(); } else { tmpDataTable.Reset(); } cmd.CommandText = "select * from " + CommonDbfTableName; if (da == null) { da = new OleDbDataAdapter(cmd); } else { da.SelectCommand = cmd; } da.Fill(tmpDataTable); tmpString = "select * from baza"; cmd = new OleDbCommand(tmpString, conn); rdr = cmd.ExecuteReader(); while (rdr.Read()) { for (int i = 0; i < rdr.FieldCount; ++i) { fstr_out.Write(rdr[rdr.GetName(i)]); if (i < rdr.FieldCount) { fstr_out.Write("\t"); } } fstr_out.WriteLine(); } rdr.Close(); fstr_out.WriteLine(); if (tmpDataTable == null) { tmpDataTable = new DataTable(); } else { tmpDataTable.Reset(); } if (da == null) { da = new OleDbDataAdapter(cmd); } else { da.SelectCommand = cmd; } da.Fill(tmpDataTable); foreach (DataRow _r_ in tmpDataTable.Rows) { foreach (DataColumn _c_ in tmpDataTable.Columns) { fstr_out.Write(_r_[_c_.ColumnName] + "\t"); } fstr_out.WriteLine(); } fstr_out.WriteLine(); cmd.CommandText = "select * from test_ins"; da.SelectCommand = cmd; tmpDataTable.Reset(); da.Fill(tmpDataTable); foreach (DataRow _r_ in tmpDataTable.Rows) { foreach (DataColumn _c_ in tmpDataTable.Columns) { fstr_out.Write(_r_[_c_.ColumnName] + "\t"); } fstr_out.WriteLine(); } fstr_out.WriteLine(); tmpString = "select * from t"; cmd = new OleDbCommand(tmpString, conn); rdr = cmd.ExecuteReader(); while (rdr.Read()) { for (int i = 0; i < rdr.FieldCount; ++i) { fstr_out.Write(rdr[rdr.GetName(i)]); if (i < rdr.FieldCount) { fstr_out.Write("\t"); } } fstr_out.WriteLine(); } rdr.Close(); fstr_out.WriteLine(); cmd.CommandType = CommandType.Text; /* * cmd.CommandText=@" * select * m.*, * d_l_I.*, * d_l_II.* * from * master m * left outer join det_l_I d_l_I on (d_l_I.Master_ID=m.ID) * left outer join det_l_II d_l_II on (d_l_II.Master_ID=m.ID) and (d_l_II.det_l_I_ID=d_l_I.ID) * order by m.ID, d_l_I.ID, d_l_II.ID * "; */ /* * cmd.CommandText=@" * select * m.*, * d_l_I.*, * d_l_II.* * from * master m * left outer join det_l_I d_l_I on (d_l_I.Master_ID=m.ID) * left outer join det_l_II d_l_II on (d_l_II.Master_ID=d_l_I.Master_ID) and (d_l_II.det_l_I_ID=d_l_I.ID) * order by m.ID, d_l_I.ID, d_l_II.ID * "; */ cmd.CommandText = @" select m.*, d_l_I.*, d_l_II.* from master m join det_l_I d_l_I on (d_l_I.Master_ID=m.ID) join det_l_II d_l_II on (d_l_II.Master_ID=m.ID) and (d_l_II.det_l_I_ID=d_l_I.ID) order by m.ID, d_l_I.ID, d_l_II.ID "; /* * cmd.CommandText=@" * select * m.*, * d_l_I.*, * d_l_II.* * from * master m * join det_l_I d_l_I on (d_l_I.Master_ID=m.ID) * join det_l_II d_l_II on (d_l_II.Master_ID=d_l_I.Master_ID) and (d_l_II.det_l_I_ID=d_l_I.ID) * order by m.ID, d_l_I.ID, d_l_II.ID * "; */ if (da == null) { da = new OleDbDataAdapter(cmd); } else { da.SelectCommand = cmd; } if (tmpDataTable == null) { tmpDataTable = new DataTable(); } else { tmpDataTable.Reset(); } da.Fill(tmpDataTable); tmpDataTable.Reset(); conn.Close(); #endif Result = 0; } catch (Exception eException) { Console.WriteLine(eException.GetType().FullName + Environment.NewLine + "Message: " + eException.Message + Environment.NewLine + "StackTrace:" + Environment.NewLine + eException.StackTrace); } } finally { #if TEST_DBF_BY_ODBC if (odbc_rdr != null && !odbc_rdr.IsClosed) { odbc_rdr.Close(); } if (odbc_conn != null && odbc_conn.State == System.Data.ConnectionState.Open) { odbc_conn.Close(); } #endif if (rdr != null && !rdr.IsClosed) { rdr.Close(); } if (conn != null && conn.State == System.Data.ConnectionState.Open) { conn.Close(); } if (fstr_out != null) { fstr_out.Close(); } if (fstr_out_866 != null) { fstr_out_866.Close(); } } return(Result); }
static int Main(string[] args) { int Result = -1; StreamWriter fstr_out = null; string tmpString = "log.log", TableName; #if TEST_DB_BY_ODBC OdbcConnection odbc_conn = null; OdbcCommand odbc_cmd = null; OdbcDataReader odbc_rdr = null; OdbcDataAdapter odbc_da = null; #endif OleDbConnection conn = null; OleDbCommand cmd = null; OleDbDataReader rdr = null; OleDbDataAdapter da = null; DataTable tmpDataTable; int tmpInt; object[] tmpObjects; FileStream fs; byte[] Blob; try { try { fstr_out = new StreamWriter(tmpString, false, System.Text.Encoding.GetEncoding(1251)); fstr_out.AutoFlush = true; string PathToDb = "E:\\Soft.src\\CBuilder\\Tests\\Paradox\\Test.#1\\db", CommonDbTableName = "Common", CommonDbTableSQLCreate = @" create table " + CommonDbTableName + @"( FInt integer, FChar char(254) )"; #if TEST_DB_BY_ODBC if (!PathToDb.EndsWith(Path.DirectorySeparatorChar.ToString())) { PathToDb += Path.DirectorySeparatorChar; } tmpString = "Driver={Microsoft Paradox Driver (*.db )};DriverID=538;Fil=Paradox 5.X;DefaultDir=" + PathToDb + ";Dbq=" + PathToDb + ";CollatingSequence=ASCII"; odbc_conn = new OdbcConnection(tmpString); odbc_conn.Open(); fstr_out.WriteLine("ConnectionString: " + odbc_conn.ConnectionString); fstr_out.WriteLine("ConnectionTimeout: " + odbc_conn.ConnectionTimeout.ToString()); fstr_out.WriteLine("Database: " + odbc_conn.Database); fstr_out.WriteLine("DataSource: " + odbc_conn.DataSource); fstr_out.WriteLine("Driver: " + odbc_conn.Driver); fstr_out.WriteLine("ServerVersion: " + odbc_conn.ServerVersion); fstr_out.WriteLine("State: " + odbc_conn.State.ToString()); fstr_out.WriteLine(); tmpString = PathToDb + CommonDbTableName + ".db"; if (File.Exists(tmpString)) { File.Delete(tmpString); } odbc_cmd = odbc_conn.CreateCommand(); odbc_cmd.CommandType = CommandType.Text; odbc_cmd.CommandText = CommonDbTableSQLCreate; odbc_cmd.ExecuteNonQuery(); odbc_cmd.CommandText = "insert into " + CommonDbTableName + " values (1,'FChar (‘„ар)')"; odbc_cmd.ExecuteNonQuery(); #if TEST_BLOB if (odbc_cmd == null) { odbc_cmd = odbc_conn.CreateCommand(); } odbc_cmd.CommandType = CommandType.Text; odbc_cmd.CommandText = "select * from TestTypes"; odbc_cmd.Parameters.Clear(); odbc_rdr = odbc_cmd.ExecuteReader(); do { if (odbc_rdr.HasRows) { for (int i = 0; i < odbc_rdr.FieldCount; ++i) { fstr_out.WriteLine(odbc_rdr.GetName(i) + " GetDataTypeName(): \"" + odbc_rdr.GetDataTypeName(i) + "\" GetFieldType(): \"" + odbc_rdr.GetFieldType(i) + "\""); } tmpInt = odbc_rdr.GetOrdinal("FGraphic"); while (odbc_rdr.Read()) { tmpString = "FromBlob.bmp"; if (File.Exists(tmpString)) { File.Delete(tmpString); } Blob = (byte[])odbc_rdr["FGraphic"]; fs = new FileStream(tmpString, FileMode.Create); fs.Write(Blob, 0, Blob.Length); fs.Close(); tmpString = "FromBlob_1.bmp"; if (File.Exists(tmpString)) { File.Delete(tmpString); } Blob = new byte[odbc_rdr.GetBytes(tmpInt, 0, null, 0, int.MaxValue)]; rdr.GetBytes(tmpInt, 0, Blob, 0, Blob.Length); fs = new FileStream(tmpString, FileMode.Create); fs.Write(Blob, 0, Blob.Length); fs.Close(); } } }while(rdr.NextResult()); odbc_rdr.Close(); #endif odbc_conn.Close(); #endif if (PathToDb.EndsWith(Path.DirectorySeparatorChar.ToString())) { PathToDb = PathToDb.Remove(PathToDb.Length - 1, 1); } tmpString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PathToDb + ";Extended Properties=Paradox 5.x"; conn = new OleDbConnection(tmpString); conn.Open(); fstr_out.WriteLine("ConnectionString: " + conn.ConnectionString); fstr_out.WriteLine("ConnectionTimeout: " + conn.ConnectionTimeout.ToString()); fstr_out.WriteLine("Database: " + conn.Database); fstr_out.WriteLine("DataSource: " + conn.DataSource); fstr_out.WriteLine("Provider: " + conn.Provider); fstr_out.WriteLine("ServerVersion: " + conn.ServerVersion); fstr_out.WriteLine("State: " + conn.State.ToString()); fstr_out.WriteLine(); tmpString = PathToDb + Path.DirectorySeparatorChar + CommonDbTableName + ".db"; if (File.Exists(tmpString)) { File.Delete(tmpString); } cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = CommonDbTableSQLCreate; cmd.ExecuteNonQuery(); cmd.CommandText = "insert into " + CommonDbTableName + " values (1,'FChar (‘„ар)')"; cmd.ExecuteNonQuery(); #if TEST_BLOB if (cmd == null) { cmd = conn.CreateCommand(); } cmd.CommandType = CommandType.Text; TableName = "TestTypes"; tmpObjects = new object[] { null, null, TableName, null }; fstr_out.WriteLine("OleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns)"); tmpDataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, tmpObjects); fstr_out.WriteLine("Columns in " + TableName + " table:"); foreach (DataRow row in tmpDataTable.Rows) { fstr_out.WriteLine("\t" + row["TABLE_CATALOG"] + " " + row["TABLE_NAME"] + " " + row["COLUMN_NAME"].ToString() + " " + row["DATA_TYPE"] + " " + row["TABLE_SCHEMA"]); } fstr_out.WriteLine(); #if TEST_BLOB_SAVE cmd.CommandText = "update TestTypes set FGraphic = ?"; cmd.Parameters.Clear(); cmd.Parameters.Add("FGraphic", OleDbType.LongVarBinary); fs = new FileStream("welcome.bmp", FileMode.Open, FileAccess.Read); Blob = new byte[fs.Length]; fs.Read(Blob, 0, Blob.Length); cmd.Parameters["FGraphic"].Value = Blob; tmpInt = cmd.ExecuteNonQuery(); #endif cmd.CommandText = "select * from TestTypes"; cmd.Parameters.Clear(); rdr = cmd.ExecuteReader(); do { if (rdr.HasRows) { for (int i = 0; i < rdr.FieldCount; ++i) { fstr_out.WriteLine(rdr.GetName(i) + " GetDataTypeName(): \"" + rdr.GetDataTypeName(i) + "\" GetFieldType(): \"" + rdr.GetFieldType(i) + "\""); } tmpInt = rdr.GetOrdinal("FGraphic"); while (rdr.Read()) { tmpString = "FromBlob.bmp"; if (File.Exists(tmpString)) { File.Delete(tmpString); } Blob = (byte[])rdr["FGraphic"]; fs = new FileStream(tmpString, FileMode.Create); fs.Write(Blob, 0, Blob.Length); fs.Close(); tmpString = "FromBlob_1.bmp"; if (File.Exists(tmpString)) { File.Delete(tmpString); } Blob = new byte[rdr.GetBytes(tmpInt, 0, null, 0, int.MaxValue)]; rdr.GetBytes(tmpInt, 0, Blob, 0, Blob.Length); fs = new FileStream(tmpString, FileMode.Create); fs.Write(Blob, 0, Blob.Length); fs.Close(); } } }while(rdr.NextResult()); rdr.Close(); #endif Result = 0; } catch (Exception eException) { Console.WriteLine(eException.GetType().FullName + Environment.NewLine + "Message: " + eException.Message + Environment.NewLine + "StackTrace:" + Environment.NewLine + eException.StackTrace); } } finally { #if TEST_DB_BY_ODBC if (odbc_rdr != null && !odbc_rdr.IsClosed) { odbc_rdr.Close(); } if (odbc_conn != null && odbc_conn.State == System.Data.ConnectionState.Open) { odbc_conn.Close(); } #endif if (rdr != null && !rdr.IsClosed) { rdr.Close(); } if (conn != null && conn.State == System.Data.ConnectionState.Open) { conn.Close(); } if (fstr_out != null) { fstr_out.Close(); } } return(Result); }
public static int Main(string[] args) { int Result = -1; StreamWriter fstr_out = null; string tmpString = "log.log"; OleDbConnection conn = null; OleDbCommand cmd = null; OleDbDataReader rdr = null; try { try { fstr_out = new StreamWriter(tmpString, false, System.Text.Encoding.GetEncoding(1251)); fstr_out.AutoFlush = true; //tmpString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Мои документы\\Jsic Veksel\\T4.mdb;Jet OLEDB:Database Password=3944"; tmpString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Soft.src\\CBuilder\\Tests\\Access\\TestAccess.mdb;User Id=admin;Password=;"; conn = new OleDbConnection(tmpString); conn.Open(); fstr_out.WriteLine("ConnectionString: " + conn.ConnectionString); fstr_out.WriteLine("ConnectionTimeout: " + conn.ConnectionTimeout.ToString()); fstr_out.WriteLine("Database: " + conn.Database); fstr_out.WriteLine("DataSource: " + conn.DataSource); fstr_out.WriteLine("Provider: " + conn.Provider); fstr_out.WriteLine("ServerVersion: " + conn.ServerVersion); fstr_out.WriteLine("State: " + conn.State.ToString()); fstr_out.WriteLine(); if (cmd == null) { cmd = conn.CreateCommand(); } cmd.CommandType = CommandType.Text; cmd.CommandText = "select sum(Mark) as SumSum from Examinations where Id=9"; fstr_out.WriteLine("OleDbCommand.ExecuteReader(CommandBehavior.SchemaOnly)"); rdr = cmd.ExecuteReader(CommandBehavior.SchemaOnly); fstr_out.WriteLine("OleDbDataReader.HasRows=" + rdr.HasRows.ToString()); for (int i = 0; i < rdr.FieldCount; ++i) { fstr_out.WriteLine(rdr.GetName(i) + " " + rdr.GetDataTypeName(i) + " " + rdr.GetFieldType(i)); } fstr_out.WriteLine(); rdr.Close(); rdr = cmd.ExecuteReader(); rdr.Close(); cmd.CommandText = "select ?=sum(Mark) from Examinations where Id=9"; cmd.Parameters.Add("SumSum", OleDbType.Double); cmd.Parameters["SumSum"].Direction = ParameterDirection.Output; rdr = cmd.ExecuteReader(); rdr.Close(); conn.Close(); Result = 0; } catch (Exception eException) { fstr_out.WriteLine(eException.GetType().FullName + Environment.NewLine + "Message: " + eException.Message + Environment.NewLine + "StackTrace:" + Environment.NewLine + eException.StackTrace); } } finally { if (rdr != null && !rdr.IsClosed) { rdr.Close(); } if (conn != null && conn.State == System.Data.ConnectionState.Open) { conn.Close(); } if (fstr_out != null) { fstr_out.Close(); } } return(Result); }