public void UpdateTimeStampTest() { string sql = "select * from TEST where int_field = @int_field"; FbTransaction transaction = this.Connection.BeginTransaction(); FbCommand command = new FbCommand(sql, Connection, transaction); FbDataAdapter adapter = new FbDataAdapter(command); adapter.SelectCommand.Parameters.Add("@int_field", FbDbType.Integer).Value = 1; FbCommandBuilder builder = new FbCommandBuilder(adapter); DataSet ds = new DataSet(); adapter.Fill(ds, "TEST"); Assert.AreEqual(1, ds.Tables["TEST"].Rows.Count, "Incorrect row count"); DateTime dtValue = DateTime.Now; ds.Tables["TEST"].Rows[0]["TIMESTAMP_FIELD"] = dtValue; adapter.Update(ds, "TEST"); adapter.Dispose(); builder.Dispose(); command.Dispose(); transaction.Commit(); transaction = Connection.BeginTransaction(); sql = "SELECT timestamp_field FROM TEST WHERE int_field = @int_field"; command = new FbCommand(sql, Connection, transaction); command.Parameters.Add("@int_field", FbDbType.Integer).Value = 1; DateTime val = (DateTime)command.ExecuteScalar(); transaction.Commit(); Assert.AreEqual(dtValue.Day, val.Day, "timestamp_field has not correct day"); Assert.AreEqual(dtValue.Month, val.Month, "timestamp_field has not correct month"); Assert.AreEqual(dtValue.Year, val.Year, "timestamp_field has not correct year"); Assert.AreEqual(dtValue.Hour, val.Hour, "timestamp_field has not correct hour"); Assert.AreEqual(dtValue.Minute, val.Minute, "timestamp_field has not correct minute"); Assert.AreEqual(dtValue.Second, val.Second, "timestamp_field has not correct second"); }
public void SubsequentDeletes() { string selectSql = "SELECT * FROM test"; string deleteSql = "DELETE FROM test WHERE int_field = @id"; // Set up conenction and select/delete commands FbConnection connection = new FbConnection(this.Connection.ConnectionString); FbCommand select = new FbCommand(selectSql, connection); FbCommand delete = new FbCommand(deleteSql, connection); delete.Parameters.Add("@id", FbDbType.Integer); delete.Parameters[0].SourceColumn = "INT_FIELD"; // Set up the FbDataAdapter FbDataAdapter adapter = new FbDataAdapter(select); adapter.DeleteCommand = delete; // Set up dataset DataSet ds = new DataSet(); adapter.Fill(ds); // Delete one row ds.Tables[0].Rows[0].Delete(); adapter.Update(ds); // Delete another row ds.Tables[0].Rows[0].Delete(); adapter.Update(ds); // Delete another row ds.Tables[0].Rows[0].Delete(); adapter.Update(ds); }
public void DeleteTest() { string sql = "select * from TEST where int_field = @int_field"; FbTransaction transaction = this.Connection.BeginTransaction(); FbCommand command = new FbCommand(sql, Connection, transaction); FbDataAdapter adapter = new FbDataAdapter(command); adapter.SelectCommand.Parameters.Add("@int_field", FbDbType.Integer).Value = 10; FbCommandBuilder builder = new FbCommandBuilder(adapter); DataSet ds = new DataSet(); adapter.Fill(ds, "TEST"); Assert.AreEqual(1, ds.Tables["TEST"].Rows.Count, "Incorrect row count"); ds.Tables["TEST"].Rows[0].Delete(); adapter.Update(ds, "TEST"); adapter.Dispose(); builder.Dispose(); command.Dispose(); transaction.Commit(); }
public void UpdateDecimalTest() { string sql = "select * from TEST where int_field = @int_field"; FbTransaction transaction = this.Connection.BeginTransaction(); FbCommand command = new FbCommand(sql, Connection, transaction); FbDataAdapter adapter = new FbDataAdapter(command); adapter.SelectCommand.Parameters.Add("@int_field", FbDbType.Integer).Value = 1; FbCommandBuilder builder = new FbCommandBuilder(adapter); DataSet ds = new DataSet(); adapter.Fill(ds, "TEST"); Assert.AreEqual(1, ds.Tables["TEST"].Rows.Count, "Incorrect row count"); ds.Tables["TEST"].Rows[0]["DECIMAL_FIELD"] = System.Int32.MaxValue; adapter.Update(ds, "TEST"); adapter.Dispose(); builder.Dispose(); command.Dispose(); transaction.Commit(); transaction = Connection.BeginTransaction(); sql = "SELECT decimal_field FROM TEST WHERE int_field = @int_field"; command = new FbCommand(sql, Connection, transaction); command.Parameters.Add("@int_field", FbDbType.Integer).Value = 1; decimal val = (decimal)command.ExecuteScalar(); transaction.Commit(); Assert.AreEqual(System.Int32.MaxValue, val, "decimal_field has not correct value"); }
public void UpdateVarCharTest() { string sql = "select * from TEST where int_field = @int_field"; FbTransaction transaction = this.Connection.BeginTransaction(); FbCommand command = new FbCommand(sql, Connection, transaction); FbDataAdapter adapter = new FbDataAdapter(command); adapter.SelectCommand.Parameters.Add("@int_field", FbDbType.Integer).Value = 1; FbCommandBuilder builder = new FbCommandBuilder(adapter); DataSet ds = new DataSet(); adapter.Fill(ds, "TEST"); Assert.AreEqual(1, ds.Tables["TEST"].Rows.Count, "Incorrect row count"); ds.Tables["TEST"].Rows[0]["VARCHAR_FIELD"] = "ONE VAR THOUSAND"; adapter.Update(ds, "TEST"); adapter.Dispose(); builder.Dispose(); command.Dispose(); transaction.Commit(); transaction = Connection.BeginTransaction(); sql = "SELECT varchar_field FROM TEST WHERE int_field = @int_field"; command = new FbCommand(sql, Connection, transaction); command.Parameters.Add("@int_field", FbDbType.Integer).Value = 1; string val = (string)command.ExecuteScalar(); transaction.Commit(); Assert.AreEqual("ONE VAR THOUSAND", val.Trim(), "varchar_field has not correct value"); }
public void InsertTest() { FbTransaction transaction = this.Connection.BeginTransaction(); FbCommand command = new FbCommand("select * from TEST", Connection, transaction); FbDataAdapter adapter = new FbDataAdapter(command); FbCommandBuilder builder = new FbCommandBuilder(adapter); DataSet ds = new DataSet(); adapter.Fill(ds, "TEST"); Assert.AreEqual(100, ds.Tables["TEST"].Rows.Count, "Incorrect row count"); DataRow newRow = ds.Tables["TEST"].NewRow(); newRow["int_field"] = 101; newRow["CHAR_FIELD"] = "ONE THOUSAND"; newRow["VARCHAR_FIELD"] = ":;,.{}`+^*[]\\!|@#$%&/()?_-<>"; newRow["BIGint_field"] = 100000; newRow["SMALLint_field"] = 100; newRow["DOUBLE_FIELD"] = 100.01; newRow["NUMERIC_FIELD"] = 100.01; newRow["DECIMAL_FIELD"] = 100.01; newRow["DATE_FIELD"] = new DateTime(100, 10, 10); newRow["TIME_FIELD"] = new DateTime(100, 10, 10, 10, 10, 10, 10); newRow["TIMESTAMP_FIELD"] = new DateTime(100, 10, 10, 10, 10, 10, 10); newRow["CLOB_FIELD"] = "ONE THOUSAND"; ds.Tables["TEST"].Rows.Add(newRow); adapter.Update(ds, "TEST"); adapter.Dispose(); builder.Dispose(); command.Dispose(); transaction.Commit(); }