以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何让程序在DOS下自动执行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=108857)

--  作者:zhutangxin
--  发布时间:2017/10/31 0:07:00
--  如何让程序在DOS下自动执行

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


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

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


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


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





--  作者:zhutangxin
--  发布时间: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下执行,如何跳过第一个图中的“用户登录”窗口,直接运行同步代码。



--  作者:有点甜
--  发布时间:2017/10/31 8:49:00
--  

1、登陆窗口

 

http://www.foxtable.com/webhelp/scr/1796.htm

 

2、配置数据源、字段映射的数据,你可以配置在一个或者多个文件里,读取txt或者xml的文件

 

3、执行程序的时候,你可以控制窗口不显示,执行完以后关闭程序


--  作者:zhutangxin
--  发布时间:2017/10/31 10:29:00
--  
谢谢!