望各位大侠能出售相助,提出好的建议者,另外开贴给分。
73 个解决方案
#1
sql server 自身有一个“分布式事务处理机制”
可以把数据分发到不同类型的数据库中去
也可以从不同的数据库中取数
如果你的网速足够高
不妨直接利用
可以把数据分发到不同类型的数据库中去
也可以从不同的数据库中取数
如果你的网速足够高
不妨直接利用
#2
请楼上的详示,多谢!!
#3
up
#4
stady
up
up
#5
兄弟这个问题也太困难了,我当时作过类似的处理,不过是在Oracle8.0.5
中,当时我做得很麻烦,每天晚上要进行当天数据的结算(就是把当天的
数据考到一各库中中),然后二天晚上就把工作库中的数据和昨天晚上结算
后的数据通过SQL的集合运算取出不同的(修改或者增加或者被删除)数据
然后把生成的数据集导成我要的文件!
不过我这个办法在7*24的应用就没用了!
中,当时我做得很麻烦,每天晚上要进行当天数据的结算(就是把当天的
数据考到一各库中中),然后二天晚上就把工作库中的数据和昨天晚上结算
后的数据通过SQL的集合运算取出不同的(修改或者增加或者被删除)数据
然后把生成的数据集导成我要的文件!
不过我这个办法在7*24的应用就没用了!
#6
用存储过程在数据库服务器上处理
#7
采用Sql分布式事务
#8
采用midas得clientdataset,使用公文包模式的方案!!
建议你去仔细看一下*李维的书!
建议你去仔细看一下*李维的书!
#9
现在问题是这样的:已经存在了三个不同的系统,并且用到了三个不同的数据库Sql server,Dbase,Fox。我要开发的的是第四个系统,数据库准备用Sql server。三个系统隔一段时间把它们的数据库给我(网络或者光盘)我如何从这三个数据库中抽取数据?因为我要保证我的库重的数据是最新的(有增加的,修改的等)。我需要遍历这三个库中每一条数据以判断数据有无修改吗?这样话量就太大了。另外说一句:该系统不需要非常好的实时性。
#10
根据你所说的,你自己不会修改数据,那么如果你只需要保证数据是最新的的话,我觉得,你值需要将新拿过来的数据,直接导入你的库中,这样一定可以保证数据是最新的!你也不用判断数据是否已经被修改!当然这样做的话,对于没有修改过的数据来说,这种操作很不合理!
#11
放入3个不同的数据库连接不就行了吗!
#12
放入3个不同的数据库连接不就行了吗!
我也在两个sql server 上处理数据!
我也在两个sql server 上处理数据!
#13
如zhang21cnboy(沧桑男人)所说:我这里是不需要修改数据的,基本只需查询。但是如果是每次都重新倒入数据的话,是否有点耗时?因为用到的四个表结构都是不同的。 okgxs(叶风铃1) ain2000(太上老君急急如令)这里的表结构都是不同的呀。
#14
up
#15
首先把三个不同系统的数据放入三个不同的目录中,DABASE和FOX的DBF数据表用TABLE控件连接;SQLSERVER数据库把备份恢复再用BDE或ADO连接;
然后,把你想做的事(提取相关数据)用DELPHI做好;
最后,每次把数据收集回来拷入相应路径。
然后,把你想做的事(提取相关数据)用DELPHI做好;
最后,每次把数据收集回来拷入相应路径。
#16
你的意思好象是从三个数据库中取出数据,然后在写入本地数据库的三张不同的表里。是吗?
#17
Up
#18
to:tongki_8(矛盾与迟钝),每次都要全部更新数据库吗?
to:zklove(花花公子) 数据肯定是从三个数据库中取得(可以通过网络,或者是盘),本地数据库待定。因为要从中抽取数据,表的个数待定。
to:zklove(花花公子) 数据肯定是从三个数据库中取得(可以通过网络,或者是盘),本地数据库待定。因为要从中抽取数据,表的个数待定。
#19
study.....
up
up
#20
UP
#21
学习啦,再灌水
#22
to fansnaf(投币一元),我看你还是直接往进去弄就可以了!
虽然这样耗时,但是如果你使用其它方法的时候,更加耗时,主要问题是你现在面对的三个系统你都不能改动,不然就好办了!
虽然这样耗时,但是如果你使用其它方法的时候,更加耗时,主要问题是你现在面对的三个系统你都不能改动,不然就好办了!
#23
我碰到过类似情况, 在别人的系统基础上写一个新系统, 不能更改别人的库数据, 只能查询
解决方法是
除了你自己的数据库连接外, 新建三个数据库连接,分别连到那三个库, 并绑定若干用于查询的Query/ADOQuery
写程序时判断三个库的数据就行了, 如果有导入等功能, 用ClientDataSet控件较好
我以前用的是PB, DataWindow是内存表, 操作很方便。ClientDataSet也是取到内存后关闭数据源的。
解决方法是
除了你自己的数据库连接外, 新建三个数据库连接,分别连到那三个库, 并绑定若干用于查询的Query/ADOQuery
写程序时判断三个库的数据就行了, 如果有导入等功能, 用ClientDataSet控件较好
我以前用的是PB, DataWindow是内存表, 操作很方便。ClientDataSet也是取到内存后关闭数据源的。
#24
太深奥了,up
#25
to:xirumin(吃好喝好),是呀,而且这三个库还是在异地的,每次用他们通过 网路将它们的整个原始数据库上传码?安全性如何考虑?
to: zhang21cnboy(沧桑男人)这三个库的差异性是很大的,如何提高效率?
to: zhang21cnboy(沧桑男人)这三个库的差异性是很大的,如何提高效率?
#26
不必另开贴,可以对该贴加分的。嘿嘿,
#27
up
#28
up
#29
up
#30
这种数据提取,首先不能影响原有系统的性能。所以通过直接访问的方式很不好。
还有数据量大不大?
我做过采集20套系统的数据,是采取数据上报的方式。也就是需要在原有的系统上外加程序
还有数据量大不大?
我做过采集20套系统的数据,是采取数据上报的方式。也就是需要在原有的系统上外加程序
#31
这样就只统一了“原有的系统上外加程序”和自己系统的接口,就很方便了。不管你是什么数据库,有多少。只要在原有的系统中加一个模块就能进行数据传输。也不需要修改自己系统的代码了。
#32
数据量在几十万到数百万,还是很大的。
问题是:我不能对三个系统进行修改,包括各自的数据库。
问题是:我不能对三个系统进行修改,包括各自的数据库。
#33
是否能用Sql Server的DTS自动地,定期地将上传的数据库倒入我建的库中呢?数据是追加?还是覆盖?因为上穿的数据库是原始的库,所以我需要是每次覆盖,能实现么?
#34
蹭点分,交个朋友嘛!
#35
建议用DTS来转换。。。然后做一个数据库来缓冲。
再查询。。呵呵。。是有够土的啦。。
再查询。。呵呵。。是有够土的啦。。
#36
同意 kuangning(郎之间)。
典型的三层结构。
典型的三层结构。
#37
需要校验数据的话可以在本地校验,校验完生成SQL(insert和update),上传的数据只是SQL语句。
我没做过,因为没环境和时间,但我想是可以的。
我没做过,因为没环境和时间,但我想是可以的。
#38
up
#39
解释一下如何本地校验?
上传成功后,备份一次数据。下次上传前校验。
也可以不用本地校验,直接用batchmove控件试试,可能更好。
还是那句话,我没试过,都是凭想象,没时间实践。羡慕你们有那么多项目做。
上传成功后,备份一次数据。下次上传前校验。
也可以不用本地校验,直接用batchmove控件试试,可能更好。
还是那句话,我没试过,都是凭想象,没时间实践。羡慕你们有那么多项目做。
#40
up
#41
如果不按照我上面说的,外加程序模块的方式,而且也不动数据库。根本无法实现
就算你通过其他方式来取数据,类似与DTS什么的。但是你能解决所有类型的数据系统吗?或者用直接到其他系统查询数据的方式,你又能保证对其他系统的性能没有影响吗?几百万的数据,对原有系统本身就是很大的数据了。加上你还要在这几百万(或者更多)的数据中抽取一些数据,肯定会大大降低原有系统的性能。可以采用的办法,最好就是原有系统加上上报接口,这样可以大大的降低对原有系统的影响。
就算你通过其他方式来取数据,类似与DTS什么的。但是你能解决所有类型的数据系统吗?或者用直接到其他系统查询数据的方式,你又能保证对其他系统的性能没有影响吗?几百万的数据,对原有系统本身就是很大的数据了。加上你还要在这几百万(或者更多)的数据中抽取一些数据,肯定会大大降低原有系统的性能。可以采用的办法,最好就是原有系统加上上报接口,这样可以大大的降低对原有系统的影响。
#42
老大:我可能没有说清楚:现在,是要求三方把数据上传到我的服务器上(以解决),然后在本地进行数据的重组的。
#43
up
#44
up
#45
同意kuangning(郎之间),我觉得这里面有一个问题要考虑:
三方的数据上传到服务器后是以什么方式存储这些数据,数据库?文件?
这步的工作是怎么做的?为什么不在这个步骤里面就把你的库直接更新了呢。
既然对实时性要求不是很高。我认为直接覆盖掉前一次的数据是最高效的方法
三方的数据上传到服务器后是以什么方式存储这些数据,数据库?文件?
这步的工作是怎么做的?为什么不在这个步骤里面就把你的库直接更新了呢。
既然对实时性要求不是很高。我认为直接覆盖掉前一次的数据是最高效的方法
#46
是从三方的数据库服务器上传的,然后放在我的服务器上。
数据库?表?这是要讨论的一个问题。
上传是通过B/S作了一个简单的上传,到一个文件夹中,是以文件的方式保存的。然后我通过C/S结构作一个数据的倒入工作。问:这样做是否合理?欢迎讨论,并参考楼上个位大侠的意见和建议。多谢!·!
数据库?表?这是要讨论的一个问题。
上传是通过B/S作了一个简单的上传,到一个文件夹中,是以文件的方式保存的。然后我通过C/S结构作一个数据的倒入工作。问:这样做是否合理?欢迎讨论,并参考楼上个位大侠的意见和建议。多谢!·!
#47
从文件导入数据库中,在这步就可以把你的数据直接更新(覆盖原有的数据)了,何必还要导入之后做比较取最新数据什么的。
#48
如果表是文件形式的直接覆盖就行了,如果是SQL SERVER就要做上传模块,先备份,后恢复,当然也可以用BatchMove控件试试。
#49
我现在决定选择直接覆盖了。
但是还有问题:sql server中如何只是把其中的某些表导出为一个文件?就像是把整个数据库备份为一个文件一样?用DTS好像不行呀,只能在两个sql server库中用DTS互相导。是如何进行的呀?
但是还有问题:sql server中如何只是把其中的某些表导出为一个文件?就像是把整个数据库备份为一个文件一样?用DTS好像不行呀,只能在两个sql server库中用DTS互相导。是如何进行的呀?
#50
up
#1
sql server 自身有一个“分布式事务处理机制”
可以把数据分发到不同类型的数据库中去
也可以从不同的数据库中取数
如果你的网速足够高
不妨直接利用
可以把数据分发到不同类型的数据库中去
也可以从不同的数据库中取数
如果你的网速足够高
不妨直接利用
#2
请楼上的详示,多谢!!
#3
up
#4
stady
up
up
#5
兄弟这个问题也太困难了,我当时作过类似的处理,不过是在Oracle8.0.5
中,当时我做得很麻烦,每天晚上要进行当天数据的结算(就是把当天的
数据考到一各库中中),然后二天晚上就把工作库中的数据和昨天晚上结算
后的数据通过SQL的集合运算取出不同的(修改或者增加或者被删除)数据
然后把生成的数据集导成我要的文件!
不过我这个办法在7*24的应用就没用了!
中,当时我做得很麻烦,每天晚上要进行当天数据的结算(就是把当天的
数据考到一各库中中),然后二天晚上就把工作库中的数据和昨天晚上结算
后的数据通过SQL的集合运算取出不同的(修改或者增加或者被删除)数据
然后把生成的数据集导成我要的文件!
不过我这个办法在7*24的应用就没用了!
#6
用存储过程在数据库服务器上处理
#7
采用Sql分布式事务
#8
采用midas得clientdataset,使用公文包模式的方案!!
建议你去仔细看一下*李维的书!
建议你去仔细看一下*李维的书!
#9
现在问题是这样的:已经存在了三个不同的系统,并且用到了三个不同的数据库Sql server,Dbase,Fox。我要开发的的是第四个系统,数据库准备用Sql server。三个系统隔一段时间把它们的数据库给我(网络或者光盘)我如何从这三个数据库中抽取数据?因为我要保证我的库重的数据是最新的(有增加的,修改的等)。我需要遍历这三个库中每一条数据以判断数据有无修改吗?这样话量就太大了。另外说一句:该系统不需要非常好的实时性。
#10
根据你所说的,你自己不会修改数据,那么如果你只需要保证数据是最新的的话,我觉得,你值需要将新拿过来的数据,直接导入你的库中,这样一定可以保证数据是最新的!你也不用判断数据是否已经被修改!当然这样做的话,对于没有修改过的数据来说,这种操作很不合理!
#11
放入3个不同的数据库连接不就行了吗!
#12
放入3个不同的数据库连接不就行了吗!
我也在两个sql server 上处理数据!
我也在两个sql server 上处理数据!
#13
如zhang21cnboy(沧桑男人)所说:我这里是不需要修改数据的,基本只需查询。但是如果是每次都重新倒入数据的话,是否有点耗时?因为用到的四个表结构都是不同的。 okgxs(叶风铃1) ain2000(太上老君急急如令)这里的表结构都是不同的呀。
#14
up
#15
首先把三个不同系统的数据放入三个不同的目录中,DABASE和FOX的DBF数据表用TABLE控件连接;SQLSERVER数据库把备份恢复再用BDE或ADO连接;
然后,把你想做的事(提取相关数据)用DELPHI做好;
最后,每次把数据收集回来拷入相应路径。
然后,把你想做的事(提取相关数据)用DELPHI做好;
最后,每次把数据收集回来拷入相应路径。
#16
你的意思好象是从三个数据库中取出数据,然后在写入本地数据库的三张不同的表里。是吗?
#17
Up
#18
to:tongki_8(矛盾与迟钝),每次都要全部更新数据库吗?
to:zklove(花花公子) 数据肯定是从三个数据库中取得(可以通过网络,或者是盘),本地数据库待定。因为要从中抽取数据,表的个数待定。
to:zklove(花花公子) 数据肯定是从三个数据库中取得(可以通过网络,或者是盘),本地数据库待定。因为要从中抽取数据,表的个数待定。
#19
study.....
up
up
#20
UP
#21
学习啦,再灌水
#22
to fansnaf(投币一元),我看你还是直接往进去弄就可以了!
虽然这样耗时,但是如果你使用其它方法的时候,更加耗时,主要问题是你现在面对的三个系统你都不能改动,不然就好办了!
虽然这样耗时,但是如果你使用其它方法的时候,更加耗时,主要问题是你现在面对的三个系统你都不能改动,不然就好办了!
#23
我碰到过类似情况, 在别人的系统基础上写一个新系统, 不能更改别人的库数据, 只能查询
解决方法是
除了你自己的数据库连接外, 新建三个数据库连接,分别连到那三个库, 并绑定若干用于查询的Query/ADOQuery
写程序时判断三个库的数据就行了, 如果有导入等功能, 用ClientDataSet控件较好
我以前用的是PB, DataWindow是内存表, 操作很方便。ClientDataSet也是取到内存后关闭数据源的。
解决方法是
除了你自己的数据库连接外, 新建三个数据库连接,分别连到那三个库, 并绑定若干用于查询的Query/ADOQuery
写程序时判断三个库的数据就行了, 如果有导入等功能, 用ClientDataSet控件较好
我以前用的是PB, DataWindow是内存表, 操作很方便。ClientDataSet也是取到内存后关闭数据源的。
#24
太深奥了,up
#25
to:xirumin(吃好喝好),是呀,而且这三个库还是在异地的,每次用他们通过 网路将它们的整个原始数据库上传码?安全性如何考虑?
to: zhang21cnboy(沧桑男人)这三个库的差异性是很大的,如何提高效率?
to: zhang21cnboy(沧桑男人)这三个库的差异性是很大的,如何提高效率?
#26
不必另开贴,可以对该贴加分的。嘿嘿,
#27
up
#28
up
#29
up
#30
这种数据提取,首先不能影响原有系统的性能。所以通过直接访问的方式很不好。
还有数据量大不大?
我做过采集20套系统的数据,是采取数据上报的方式。也就是需要在原有的系统上外加程序
还有数据量大不大?
我做过采集20套系统的数据,是采取数据上报的方式。也就是需要在原有的系统上外加程序
#31
这样就只统一了“原有的系统上外加程序”和自己系统的接口,就很方便了。不管你是什么数据库,有多少。只要在原有的系统中加一个模块就能进行数据传输。也不需要修改自己系统的代码了。
#32
数据量在几十万到数百万,还是很大的。
问题是:我不能对三个系统进行修改,包括各自的数据库。
问题是:我不能对三个系统进行修改,包括各自的数据库。
#33
是否能用Sql Server的DTS自动地,定期地将上传的数据库倒入我建的库中呢?数据是追加?还是覆盖?因为上穿的数据库是原始的库,所以我需要是每次覆盖,能实现么?
#34
蹭点分,交个朋友嘛!
#35
建议用DTS来转换。。。然后做一个数据库来缓冲。
再查询。。呵呵。。是有够土的啦。。
再查询。。呵呵。。是有够土的啦。。
#36
同意 kuangning(郎之间)。
典型的三层结构。
典型的三层结构。
#37
需要校验数据的话可以在本地校验,校验完生成SQL(insert和update),上传的数据只是SQL语句。
我没做过,因为没环境和时间,但我想是可以的。
我没做过,因为没环境和时间,但我想是可以的。
#38
up
#39
解释一下如何本地校验?
上传成功后,备份一次数据。下次上传前校验。
也可以不用本地校验,直接用batchmove控件试试,可能更好。
还是那句话,我没试过,都是凭想象,没时间实践。羡慕你们有那么多项目做。
上传成功后,备份一次数据。下次上传前校验。
也可以不用本地校验,直接用batchmove控件试试,可能更好。
还是那句话,我没试过,都是凭想象,没时间实践。羡慕你们有那么多项目做。
#40
up
#41
如果不按照我上面说的,外加程序模块的方式,而且也不动数据库。根本无法实现
就算你通过其他方式来取数据,类似与DTS什么的。但是你能解决所有类型的数据系统吗?或者用直接到其他系统查询数据的方式,你又能保证对其他系统的性能没有影响吗?几百万的数据,对原有系统本身就是很大的数据了。加上你还要在这几百万(或者更多)的数据中抽取一些数据,肯定会大大降低原有系统的性能。可以采用的办法,最好就是原有系统加上上报接口,这样可以大大的降低对原有系统的影响。
就算你通过其他方式来取数据,类似与DTS什么的。但是你能解决所有类型的数据系统吗?或者用直接到其他系统查询数据的方式,你又能保证对其他系统的性能没有影响吗?几百万的数据,对原有系统本身就是很大的数据了。加上你还要在这几百万(或者更多)的数据中抽取一些数据,肯定会大大降低原有系统的性能。可以采用的办法,最好就是原有系统加上上报接口,这样可以大大的降低对原有系统的影响。
#42
老大:我可能没有说清楚:现在,是要求三方把数据上传到我的服务器上(以解决),然后在本地进行数据的重组的。
#43
up
#44
up
#45
同意kuangning(郎之间),我觉得这里面有一个问题要考虑:
三方的数据上传到服务器后是以什么方式存储这些数据,数据库?文件?
这步的工作是怎么做的?为什么不在这个步骤里面就把你的库直接更新了呢。
既然对实时性要求不是很高。我认为直接覆盖掉前一次的数据是最高效的方法
三方的数据上传到服务器后是以什么方式存储这些数据,数据库?文件?
这步的工作是怎么做的?为什么不在这个步骤里面就把你的库直接更新了呢。
既然对实时性要求不是很高。我认为直接覆盖掉前一次的数据是最高效的方法
#46
是从三方的数据库服务器上传的,然后放在我的服务器上。
数据库?表?这是要讨论的一个问题。
上传是通过B/S作了一个简单的上传,到一个文件夹中,是以文件的方式保存的。然后我通过C/S结构作一个数据的倒入工作。问:这样做是否合理?欢迎讨论,并参考楼上个位大侠的意见和建议。多谢!·!
数据库?表?这是要讨论的一个问题。
上传是通过B/S作了一个简单的上传,到一个文件夹中,是以文件的方式保存的。然后我通过C/S结构作一个数据的倒入工作。问:这样做是否合理?欢迎讨论,并参考楼上个位大侠的意见和建议。多谢!·!
#47
从文件导入数据库中,在这步就可以把你的数据直接更新(覆盖原有的数据)了,何必还要导入之后做比较取最新数据什么的。
#48
如果表是文件形式的直接覆盖就行了,如果是SQL SERVER就要做上传模块,先备份,后恢复,当然也可以用BatchMove控件试试。
#49
我现在决定选择直接覆盖了。
但是还有问题:sql server中如何只是把其中的某些表导出为一个文件?就像是把整个数据库备份为一个文件一样?用DTS好像不行呀,只能在两个sql server库中用DTS互相导。是如何进行的呀?
但是还有问题:sql server中如何只是把其中的某些表导出为一个文件?就像是把整个数据库备份为一个文件一样?用DTS好像不行呀,只能在两个sql server库中用DTS互相导。是如何进行的呀?
#50
up