Foxtable(狐表)用户栏目专家坐堂 → 如何让程序在DOS下自动执行


  共有1917人关注过本帖树形打印复制链接

主题:如何让程序在DOS下自动执行

帅哥哟,离线,有人找我吗?
zhutangxin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:465 积分:3983 威望:0 精华:0 注册:2016/10/14 13:40:00
如何让程序在DOS下自动执行  发帖心情 Post By:2017/10/31 0:07:00 [显示全部帖子]

写了一个Access数据同步至sql server的程序,希望它能在Windows计划任务下运行,运行结束后自动关闭。要实现这个功能,需要跳过下面的登录窗口。


此主题相关图片如下:窗口.jpg
按此在新窗口浏览图片

另外,这个程序需要先设置源数据库,目标数据库,表和字段对应关系,然后才能用来同步数据。


此主题相关图片如下:step1.jpg
按此在新窗口浏览图片


此主题相关图片如下:step2.jpg
按此在新窗口浏览图片





 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:465 积分:3983 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/31 0:12:00 [显示全部帖子]

第三步同步所有的表

图片点击可在新窗口打开查看此主题相关图片如下:step3.jpg
图片点击可在新窗口打开查看
“同步所有表”的代码如下:

Dim cmd As new SQLCommand
Dim sourcetbs As new List (of String)
Dim targettbs As new List (of String)
'Vars.Add("_logFileName",Gettype(String))'变量: Log名称
Vars("_logFileName") = "log" + CSTR(Format(Date.Now, "yyyyMMddHHmmss")) + ".txt"
targettbs = Connections("dbTarget").GetTableNames()
sourcetbs = Connections("dbSource").GetTableNames()
sourcetbs.AddRange(Connections("dbSource").GetViewNames())
cmd.C
cmd.CommandText = "SELECT DISTINCT TableName1 AS sourceTable, TableName2 AS targetTable F R OM dbo.CfgDataMapping"
Dim dt As DataTable = cmd.ExecuteReader()
Dim dr As DataRow
For i As Integer = 0 To dt.DataRows.Count -1
    dr = dt.DataRows(i)
    If sourcetbs.Contains(dr("sourceTable")) = True AndAlso targettbs.Contains(dr("targetTable")) = True Then
    foxSqlBulkcopy(dr("targetTable"))
    End If
Next

问题:
1. 是否可以把设前面三步设置与Dos下自动运行放在一个程序里,如在Dos下加一个参数,让它只执行保存好的参数设置,而不进入前面的参数设置界面?
2. 如果可以在Dos下执行,如何跳过第一个图中的“用户登录”窗口,直接运行同步代码。



 回到顶部
帅哥哟,离线,有人找我吗?
zhutangxin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:465 积分:3983 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2017/10/31 10:29:00 [显示全部帖子]

谢谢!


 回到顶部