导航:
论坛 -> 数据库专区
斑竹:liumazi,waterstone
作者:
2018/6/7 10:08:14
标题:
关于dbgrid导入服务器数据的棘手问题
浏览:1847
加入我的收藏
楼主:
公司地磅秤采用access数据库,我想把里面的数据定时采集到服务器sqlserver里,或者做成程序获取到access数据到dbgrid里,然后把dbgrid里的数据导入到服务器里,由于数据库不在同一个电脑里,想不出好的方法,哪位大侠帮帮忙?
----------------------------------------------
-
作者:
2018/6/7 10:21:03
1楼:
dbgrid 只不过负责显示而已。 为啥总有人喜欢 绕道? 难道这样可以体现自己的勤奋?
----------------------------------------------
(C)(P)Flying Wang
作者:
drroc (mvcxe)
★☆☆☆☆
-
盒子活跃会员
2018/6/7 10:21:12
1楼:
棘手问题:) 如果两台机是可以联网的就简单了 写个服务程序在access那台机上,读access内容写到sqlserver中 如果不能联网的,将access拷sqlserver那台机,再用上面的程序,导一下 与dbgrid都无关
----------------------------------------------
MVCXE中国首个DELPHI MVC WEB框架:https://www.mvcxe.com/
作者:
2018/6/7 11:03:53
2楼:
这个和dbgrid没什么关系。 甚至和delphi都没什么关系。 如果可以联到你的sqlserver本机的话,直接把文件上传到安装了sqlserver的电脑,然后用sql脚本直接导入就可以了。
----------------------------------------------
--
作者:
2018/6/7 11:58:07
3楼:
我目前的设计思路是这样的:我用三层架构在公司局域网可以实时的看到dbgrid的数据,操作工每天看完数据后把当天的数据保存到服务器sqlserver中,当然数据不能重复,我使用insert into 服务器表 from 地磅秤电脑的表 where 条件,因为表不在一个数据库中,想不出好的方式处理,想到了盒子,这里有大牛,希望能得正解
----------------------------------------------
-
作者:
2018/6/7 12:01:29
4楼:
那种按照本地包的方式我会,但是不能实时分析保存,比如操作工要统计最近一段时间的数据,他可以直接选择范围把分析的数据导入到服务器,我这样做的目的主要考虑access存储数据不安全,不如把数据保存到服务器里
----------------------------------------------
-
作者:
2018/6/7 12:04:42
5楼:
一楼能否提供一条思路.开始我也觉得很容易,但是处理起来还真有点棘手
----------------------------------------------
-
作者:
2018/6/7 13:37:16
6楼:
不就是个数据同步程序嘛?想那么复杂干嘛? 本地数据库开个字段做标记,没有标记的,统统向服务器上丢,丢完就做个标记,下次丢的时候已做标记的跳过,多简单啊。
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
2018/6/7 15:03:37
7楼:
道理都知道,第一,2个数据表不在同一个电脑,第二,我只想知道怎么用代码去处理,想着都明白,就是在一个sql语句里怎么用2个不是连接同一个数据库的adoquery.头大的问题?要具体步骤和具体代码,不要围观者说笑
----------------------------------------------
-
作者:
ycfree (ycfree)
★☆☆☆☆
-
盒子活跃会员
2018/6/7 15:34:36
8楼:
没看出哪里棘手了,另外这和DBGrid毫无关系
----------------------------------------------
-
作者:
2018/6/7 19:42:07
9楼:
这个真的简单啊, client 查询端用 firedac ado 组建查询出没有标记的数据, server 提交端用 firedac sqlserver 组建连接你的 sqlserver,查到 ado 数据后组织 sql 语句,传到服务端 query 的 params, 最后用事务 commit ,提交成功就做本地标记,失败就回滚。 至于本地标记,可以开一个字段,也可以开一张表等等等等。。。 至于想要现成代码。。。
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
2018/6/11 15:59:56
10楼:
真的没人能解决这个问题,都是大嘴巴
----------------------------------------------
-
作者:
2018/6/11 17:12:30
11楼:
本来写了答案,看到 大嘴巴,我还是闭嘴好了。 反正也不详细。
此帖子包含附件: 大小: 38.1K
----------------------------------------------
(C)(P)Flying Wang
作者:
2018/6/11 17:19:05
12楼:
把刚才写的加密一下。 反正没写代码,就写几行字而已。
----------------------------------------------
(C)(P)Flying Wang
作者:
2018/6/12 8:52:28
13楼:
你这不是来请教,而是让别人写好了你拿去用,基础那么差,嘴巴还毒。自求多福吧,你都说那种话了,谁再写代码给你不是犯贱?
----------------------------------------------
-
作者:
2018/6/12 9:37:55
14楼:
magiewang (magiewang) 理解新人,遇到难题的心情,都是新人走过来,会的话,尽量详细点
----------------------------------------------
-相互学习,共同进步! 努力每一天,不能望山跑死马 发上等愿,结中等缘,享下等福;择高处立,寻平处住,向宽处行
作者:
2018/6/12 9:39:27
15楼:
wang_80919 (Flying Wang) 老猫,同志,恭喜获得 delphi界贡献精神杰出奖
----------------------------------------------
-相互学习,共同进步! 努力每一天,不能望山跑死马 发上等愿,结中等缘,享下等福;择高处立,寻平处住,向宽处行
作者:
2018/6/12 14:51:22
16楼:
问题已解决,可能一时思路闭塞,对不住各位了
----------------------------------------------
-
作者:
2018/6/12 15:20:34
17楼:
语句如下: insert into 表 select * from openrowset('Microsoft.Jet.OLEDB.4.0','E:\a.mdb';'admin';'',DEPARTMENTS) 参数中:'admin' access用户 '' 密码空自己写 DEPARTMENTS 是access表名 具体写程序可以在SQL里写一个存储过程。由程序去调用。过程如下: CREATE proc accessTOsql @path varchar(200) AS --建立临时表记录导入信息 if object_id('acctmp') is not null drop table acctmp create table acctmp(id int,name varchar(50)) exec('insert into acctmp select deptid,deptname from openrowset(''Microsoft.Jet.OLEDB.4.0'','''+@path+''';''admin'';'''',DEPARTMENTS)')
----------------------------------------------
学习学习....
作者:
2018/6/13 12:30:41
18楼:
shadowpj 谢谢,基本和我的思路差不多,我没用存储过程,简单的做了个每隔10分钟采集一下服务器没有的数据.其实有些问题,大家讨论讨论,思路就开了,不要看了就说简单什么的,等于没说,每个提问题的都是想拓展下思路,本帖完结,谢谢提供思路的朋友们.
----------------------------------------------
-
作者:
2018/6/13 12:36:39
19楼:
你明明是提问有问题,居然怪我们回答有问题?
----------------------------------------------
(C)(P)Flying Wang