begin
cnn.BeginTrans; try cmd.ActiveConnection := cnn; cmd.CommandText := sql; cmd.Prepared := True; cmd.Execute; cnn.CommitTrans; except cnn.RollbackTrans; Result := False; end; end; end; 三、访问数据 1、最前 rst.MoveFirst; 2、最后 rst.MoveLast; 3、向前 rst.MovePrevious; 4、向后 rst.MoveNext; 5、取当前记录 rst.Fields[0].Value 或 rst.Fields[\’字段名\’].Value; 6、修改当前记录 rst.Update(rst.Fields[0].Name, 某值); 7、取消修改 rst.CancelUpdate; 8、删除当前记录 rst.Delete(adAffectCurrent); 9、删除所有记录 rst.Delete(adAffectAll); 10、追加记录 rst.AddNew; rst.Fields[0].Value := 值1; rst.Fields[1].Value := 值2; rst.Update; 11、刷新 rst.Refresh; 12、记录数 rst.RecordCount 15、其它方法和属性查 MSDN 或 ADO 的帮助; 四、一些例子 //变量声明 var cnn, rst, cmd: OleVariant; //创建对象 procedure TForm1.FormCreate(Sender: TObject); begin cnn := CreateConnection; rst := CreateRecordset; cmd := CreateCommand; end; //释放对象 procedure TForm1.FormDestroy(Sender: TObject); begin FreeCommand(cmd); FreeRecordset(rst); FreeConnection(cnn); end; //连接数据库 procedure TForm1.Button1Click(Sender: TObject); begin if ConnectToDB(cnn, \’mydb\’, \’127.0.0.1\’, \’sa\’, \’ok\’) then Caption := \’连接成功\’ else Caption := \’连接失败\’; end; //取记录 procedure TForm1.Button2Click(Sender: TObject); begin ExecSQL(cnn, rst, \’select * from 表a\’); Caption := VarToStr(rst.Fields[\’字段a\’].Value); end; 五、原生 ADO 与 Delphi ADOExpress 组件的对应关系 1、Connection <=> ADOConnection.ConnectionObject; 2、Recordset <=> ADODataSet.Recordset; 3、Command <=> ADOCommand.CommandObject; 4、? <=> ADOQuery,因为 ADOQuery 根本就不是原生 ADO 对象 5、ExecSQL <=> ADODataSet.Open; 6、ExecSQLA <=> ADOCommand.Execute; 7、有了上面几个其它的就不多说了 六、与数据库结构有关的一些函数 1、动态改变字段名称 uses ComObj; //Access //TableName: 表名; OldColName: 原字段名; NewColName: 新字段名; procedure RenameField(const TableName, OldColName, NewColName: string); var DB, Col: OleVariant; begin DB := CreateOleObject(\’ADOX.Catalog\’); DB.ActiveConnection := ADOConnection1.ConnectionObject; Col := CreateOleObject(\’ADOX.Column\’); Col := DB.Tables[TableName].Columns[OldColName]; Col.Name := NewColName; end; //SQLServer procedure RenameField(const TableName, OldColName, NewColName: string); begin with ADOCommand1 do begin CommandText := \’EXEC sp_rename \’\’\’ + TableName + \’.\’ + OldColName + \’\’\’,\’\’\’ + NewColName + \’\’\’,\’\’COLUMN\’\’;\’; Excute; end; end;来源:考试大-计算机二级考试 |
|
来自: 远在南非 > 《TClientDataSet控件》