求高手指一条明路,做个项目用的是Ms SQL server 2000,因网络不稳定,需下载数据至本地Access数据库....

SunTojava 2006-02-13 05:59:57
求高手指一条明路,做个项目用的是Ms SQL server 2000,因网络不稳定,需下载数据至本地Access数据库.网络不通时,可以连接到本地Access数据库查询,网络畅通时,就连接到远程Ms SQL Server2000数据库查询。

问题就出现在这里,项目的所有报表查询全部是用“水晶报表“调用SQL存储过程写的,而存储过程又是用 动态SQL语句写的,

请问各位高手,
1。有没方法用Ms SQL Server的查询引擎来查Access数据库,查询引擎又怎样引用?
2。有没快速的方法把 Ms SQL Server 2000 的存储过程的数据导出至Access数据库?(只要SQL语句方式)
...全文
195 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsftest 2006-02-15
  • 打赏
  • 举报
回复
比如服务器坏了,或网络不行,所以有几台客户机都把数据放在本地了,转天服务器好了,或网络好了,如何能同步呀?好象不可能吧.
比如说某表有自增字段,那么在几台客户机的这个表中都会产生相同的id,但却不是相同的内容,如何恢复到服务器上这个表中.就这个简单问题就无法保证能实现吧.
当然,太多种情况没法处理了.所以还要在网络上想办法.
客户的要求是不合理的.
比如给客户装修,客户不买料,却让你完工,你能行吗?也许可以,你给花钱买,除非你...
========================
但是如果是两台sql server却是可以实现同步的,在access中虽然没有事务功能,但却可以人为地尽量模拟。。。至于自增字段,在access和sql server如何同步也的确是个问题。。。但我想这也不是绝对不能解决的。。。

具体问题具体分析。。。。。。。。。。。。
daisy8675 2006-02-15
  • 打赏
  • 举报
回复
问题就出现在这里,项目的所有报表查询全部是用“水晶报表“调用SQL存储过程写的,而存储过程又是用 动态SQL语句写的,

请问各位高手,
1。有没方法用Ms SQL Server的查询引擎来查Access数据库,查询引擎又怎样引用?

//我不清楚你的意思是SQL中去查ACCESS?可以查,但是同样要写SQL的字符数据.

2。有没快速的方法把 Ms SQL Server 2000 的存储过程的数据导出至Access数据库?(只要SQL语句方式)
//存储过程是执行以后产生的数据,它只是SQL语句而已,关系型数据库的数据会在表中
在ACCESS中间没有存储过程和视图这个概念
但是ACCESS有查询,你可以写嵌套的条件查询,这样的效果和存储过程是一样的

我现在不清楚,你是把数据导在ACCESS中间,光用ACCESS还是SQL,ACCESS一起用?数据是否同步???

我看你在这里写着[项目的所有报表查询全部是用“水晶报表“调用SQL存储过程写的],我猜你想把一部分数据写在ACCESS中间,SQL查ACESS的数据做为水晶报表调用.
水晶报表我个人不建议你使用固定连接(即写死字符串,利用ADO或者ODBC去访问),水晶报表最好的方式是用ttx方式,这样无论你换哪个数据库都是没有问题的

如果我的理解没有问题,你所提出的2点全部可以做到,但是,考虑工作量和实际情况,我觉得你得到比失去的多,不过你可以试一下.


SunTojava 2006-02-14
  • 打赏
  • 举报
回复
解决网络的不稳定问题---这是客户的问题,
我们写软件的也只能方便用户,要客户觉得软件不会因运行环境因素变化而影响软件的运行,
数据只要网络连接正常的时候本地Access与远程SQL同步,网络连接不正常时,以本地数据为数据源。
lsftest 2006-02-14
  • 打赏
  • 举报
回复
个人觉得不好吧.如何解决数据的同步呢?也就是说两个数据库,只要一个库中的表发生变化,另一个库中的相应表也要发生相应变化,做得到吗?
所以说解决网络的不稳定问题才是正路.
============================================
可以在两个数据库里设置同步标志。。。。。。。。
当然,解决网络问题是首选。。。。。。。。。。。
bjwqt 2006-02-14
  • 打赏
  • 举报
回复
比如服务器坏了,或网络不行,所以有几台客户机都把数据放在本地了,转天服务器好了,或网络好了,如何能同步呀?好象不可能吧.
比如说某表有自增字段,那么在几台客户机的这个表中都会产生相同的id,但却不是相同的内容,如何恢复到服务器上这个表中.就这个简单问题就无法保证能实现吧.
当然,太多种情况没法处理了.所以还要在网络上想办法.
客户的要求是不合理的.
比如给客户装修,客户不买料,却让你完工,你能行吗?也许可以,你给花钱买,除非你...
bjwqt 2006-02-14
  • 打赏
  • 举报
回复
个人觉得不好吧.如何解决数据的同步呢?也就是说两个数据库,只要一个库中的表发生变化,另一个库中的相应表也要发生相应变化,做得到吗?
所以说解决网络的不稳定问题才是正路.
yulin70 2006-02-14
  • 打赏
  • 举报
回复
我做考试系统的时候也有你的问题,我们当时考虑的是断电处理和意外情况本地保存数据。你可以给sql建立个连接cn ,给access建立另外一个连接cn1,先判断cn如果连接不上发生错误转到cn1的连接去操作。
zfl2k 2006-02-14
  • 打赏
  • 举报
回复
上面打错几个字
使用database可以实现
比如:
dim OdbcDb As Database,AccOdbcConn as String,OdbcSqlconn as String
OdbcSqlconn = "ODBC;Driver={SQL Server};server=;uid=sa;pwd=;database="
Set OdbcDb = OpenDatabase("", 0, -1, OdbcSqlconn)
AccOdbcConn ="ODBC;此处为你的ACCESS连接字符串"
然后执行时可以用
1、odbcdb.OpenRecordset ("select * from "+AccOdbcConn+".table")
2、
OdbcDb.Execute "insert into " + AccOdbcConn + ".table select * from table ", dbFailOnError
zfl2k 2006-02-14
  • 打赏
  • 举报
回复
使用database可以实现
比如:
dim OdbcDb As Database,AccOdbcConn as String,OdbcSqlconn as String
OdbcSqlconn = "ODBC;Driver={SQL Server};server=;uid=sa;pwd=;database="
Set OdbcDb = OpenDatabase("", 0, -1, OdbcSqlconn)
AccOdbcConn ="ODBC;此处为你的ACCESS连接字符串"
然后执行时可以用
1、odbcdb.OpenRecordset ("select * from "+AccOdbcDb+".table")
2、
OdbcDb.Execute "insert into " + AccOdbcDb + ".table select * from table ", dbFailOnError
lsftest 2006-02-14
  • 打赏
  • 举报
回复
1。有没方法用Ms SQL Server的查询引擎来查Access数据库,查询引擎又怎样引用?
===============================================
没有,你只能在程序里做两手准备,但要注意的是数据的同步问题。。。


2。有没快速的方法把 Ms SQL Server 2000 的存储过程的数据导出至Access数据库?(只要SQL语句方式)
==========================
可以通过sql server的dts功能把数据导出到access。。。。。。具体要看你的存储过程怎么写。。。。。。。。
SunTojava 2006-02-14
  • 打赏
  • 举报
回复
各位高手,我的问题还是解决不了啊,


_______________________________________________________________________
上面打错几个字
使用database可以实现
比如:
dim OdbcDb As Database,AccOdbcConn as String,OdbcSqlconn as String
OdbcSqlconn = "ODBC;Driver={SQL Server};server=;uid=sa;pwd=;database="
Set OdbcDb = OpenDatabase("", 0, -1, OdbcSqlconn)
AccOdbcConn ="ODBC;此处为你的ACCESS连接字符串"
然后执行时可以用
1、odbcdb.OpenRecordset ("select * from "+AccOdbcConn+".table")
2、
OdbcDb.Execute "insert into " + AccOdbcConn + ".table select * from table ", dbFailOnError
___________________________________________________________________________________
运行不能通过,错误信息:“在SQL语句结尾找到字符”
laidon 2006-02-14
  • 打赏
  • 举报
回复
网络不稳定怎么都不会好用
就像 lsftest()说的一样
要用c\s的项目网络才是关键
coyihisaso 2006-02-14
  • 打赏
  • 举报
回复
同意,SunTojava(孤星弄月) 的解决方案
SunTojava 2006-02-13
  • 打赏
  • 举报
回复
各位高手,我要的是语句或实例啊,
Hellohuan 2006-02-13
  • 打赏
  • 举报
回复
up
迈克揉索芙特 2006-02-13
  • 打赏
  • 举报
回复
1.修改连接字符串
2.可以,但有局限性。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧