怎样远程更新数据库,而不改变原有的数据主键等信息 找进销存软件破解版
进销存软件版1楼: 本地编辑了数据库,远程也有同样的数据库,现在要本地的数据在线更新到远程数据库中,不改变远程数据库的配置,只更新表中的内容,应该怎么写代码啊?请各位高手帮帮忙啊
adoQueryLocal.Open;
if adoQueryLocal.eof then
adoQueryLocal.Append
else
adoQueryLocal.Edit;
for i := 0 to cdsSource.FieldCount - 1 do
begin
adoQueryLocal.FieldByName(cdsSource.Fields[i].FieldName) := cdsSource.Fields[i];
end;
cdsSource.Next;
end;
end;
反正就是这个意思,代码你看着改改
2楼: 用OPENDATASOURCE 如进销存软件破解版
3楼: 不明白,可以句天点么
4楼: 是用*.db文件更新还是怎么样?
5楼: 只要是有办法都可以说。
最好能有代码
6楼: 如果你在本地更新数据是用SQL语句的话,就可以把相同的语句到远程数据库再执行一遍。
进销存软件版7楼: 我建议:
把两端的数据库结构一定要设计成一样的,而且不能用自动编号的那种字段,各表的主键由程序自动生成。写一个通用的procedure,把客户端的数据更新到远程。不知道你的远程是以什么方式相连的,如果用三层或COM+的话,最好是传递TClientDataSet或TClientDataSet.Data的OleVaiant做为参数
procedure UpdateData(cdsSource: TClientDataSet; strKeyName: string)
var
i: integer;
begin
while not cdsSource.eof do
begin
adoQueryLocal.Close;
adoQueryLocal.SQL.Text := ''Select * From [TableName] Where '' + strKeyName + '' = '''''' + cdsSource.FieldByName(strKeyName).AsString + '''''''';
adoQueryLocal.Open;
if adoQueryLocal.eof then
adoQueryLocal.Append
else
adoQueryLocal.Edit;
for i := 0 to cdsSource.FieldCount - 1 do
begin
adoQueryLocal.FieldByName(cdsSource.Fields[i].FieldName) := cdsSource.Fields[i];
end;
cdsSource.Next;
end;
end;
反正就是这个意思,代码你看着改改
8楼: 远程有固定的IP,通过网络连接上远程的数据库,mynetlife,你讲的我不是太明白。:(
9楼: 我现在想使用SQL2000的DTS导入数据的接口导入数据,应该怎么做呢
10楼: 我找到了更好的方法了。还是要谢谢各位