分享

ClientDataSet的隐含功能-4

 远在南非 2010-07-09
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;来源:考试大-计算机二级考试

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多