sql->Access(200分)

  • 主题发起人 主题发起人 A.W
  • 开始时间 开始时间
A

A.W

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用ADO与SQL2000编程时,遇到几个问题:

1、我用ADO的CONNECTIONSTRING设置好SQL的连接编译后,如果我变更了服务器的名称,
如何才能不重新设置ADO,让程序自动适应?(采用INI或注册表?)
2、我的系统提供离线功能,需要将SQL的数据转到ACCESS,有没有办法或控件可以实现
在程序中直接创建ACCESS数据库?
3、用ADO连接ACCESS如何可以不使用ODBC直接连接?如何实现?
4、在局域网中如何实现共享ACCESS库,其ADO如何设置?

以上问题请举例回答,我会根据情况加分的!多谢!
 
1:可以采用的
procedure TSightMain.Database1BeforeDisconnect(Sender: TObject);
const
l1:string='Provider=SQLOLEDB.1;Password=';
l2:string=';Persist Security Info=True;User ID=';
l3:string=';Initial Catalog=RKD;Data Source=';
l4:string=';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096';
begin
with tregistry.Create do
try
rootkey:=HKEY_LOCAL_MACHINE;
openkey('/Software/Rink Info. Tech./Rink2000/Database',true);
l3:=l3+GetLocalIp; //Only allow running on Database Server!!!
if valueexists('LoginId') then
l2:=l2+readstring('LoginId');
if valueexists('PassWord') then
l1:=l1+Decrypt(readstring('PassWord'));
Database1.ConnectionString:=l1+l2+l3+l4;
finally
free;
end;
end;

2:没必要保存为Access的,可以直接保存数据
TCustomADODataSet.SaveToFile

3,4:我从来不用Access,所以。。。
 
难到没有人能帮帮我吗?1和3我已经解决了。
 
2. 创建access库是不行的,但可以创建表,你可以用一个已经创建好的空access文件
copyfile一下不就搞定了,
或者打开 sql server 代理服务,启动一个作业,让sql server自动定时
用 sql server的导入导出数据功能将数据倒到一个access库(当然是以复制的方式).

 
2.你可以先创建一个access数据库,打包的时候一起拷过去。
4.这个access数据库要完全共享,CONNECTIONSTRING要动态设置(你
可以参考你的第一个问题)要一个完全的绝对路径
“计算机名//文件夹//asscess数据库名”
 
1.一般是写一个注册程序,一个简单form,让客户在上面输入服务器名,
数据库名。。;注册程序可以把他写到注册表的run下,让机器启动时自动执行;
2。可以通过sql语句的create table,inster等命令直接创建;
3。你已经解决;
4。如果是c/s结构,access本身支持c/s结构;客户可以共用,不需要特别设置,只是
在程序中对数据库进行增加,编辑,删除操作时,起用显性事务处理,以防止多用户关联表操作
时出现错误;
 
补充:
2。创建access库是不行,创建access数据库可以在注册程序里直接操作access;
  
 
后退
顶部