1、说明: 本地文件 。。Data\临时\本地临时数据库.mdb
目的:由于本地mdb文件作用是,在与服务器连接中断时,代替服务器的表,而服务器的表结构不断调整 ,这就时常要把本地文件的表结构和服务器的表结构比对并同步
共5个问题,敬请老师指教!!
Dim 我的数据库 As String '定义新增数据源时,数据源的名称
Dim 列类型 As String = "未知"
For Each 服务器里的表 As Table In Tables ‘问题1:这里是先遍历的内部表,然后去查看本地文件的表,如何反之:先遍历本地文件里的表,再遍历表里的列名称
If 服务器里的表.name.IndexOf("网络") <> -1 Then '--如果 含有 "网络"两个字
msgbox( 服务器里的表.name )
Vars("新增数据源序号") = Vars("新增数据源序号") + 1
我的数据库 = "数据库" & Vars("新增数据源序号")
If FileSys.FileExists( ProjectPath & "Data\临时\本地临时数据库.mdb " ) Then '如果指定的文件存在
Con_nections.Add( 我的数据库 , "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ProjectPath & "data\临时\本地临时数据库.mdb;Persist Security Info=False;Jet OLEDB:Dat_abase Password=mima")
Dim cmd2 As new SQ_LCommand
cmd2.Con_nectionName = 我的数据库
cmd2.Com_mandText = "se_lect * fr_om {"& 服务器里的表.name &"} where 1=2" ‘问题2:如果不存在【服务器里的表.name】,如何写个是否存在的判断语句
Dim dt2 As Dat_aTable = cmd2.Exe_cuteReader
For Each dc As DataCol In DataTables(服务器里的表.name).DataCols
If dt2.DataCols.Contains(dc.name) Then '如果存在【...】列
Else
If dc.IsNumeric Then
列类型 = "数值型"
ElseIf dc.IsString Then
列类型 = "字符型"
ElseIf dc.IsDate Then
列类型 = "日期型"
ElseIf dc.IsBoolean Then
列类型 = "逻辑值型"
End If ‘问题3:列类型是否就这么四种
If MessageBox.Show( " 本地: 无" & dc.name & " 是否新建该列?", "请确认", MessageBoxButtons.YesNo)=DialogResult.Yes Then
If 列类型 = "数值型" Then
cmd2.Com_mandText = "al_ter table {"& 服务器里的表.name &"} add dc.name DOUBLE;" ‘’问题4,下划线的写法是错误的,我改成 “& dc.name &”等多种表达方式都失败了
ElseIf 列类型 = "字符型" Then
cmd2.Com_mandText = "al_ter table {"& 服务器里的表.name &"} add dc.name text(255);"
ElseIf 列类型 = "日期型" Then
cmd2.Com_mandText = "al_ter table {"& 服务器里的表.name &"} add dc.name timestamp;"
ElseIf 列类型 = "逻辑值型" Then
cmd2.Com_mandText = "al_ter table {"& 服务器里的表.name &"} add dc.name ???
;" ‘问题5:对于逻辑值型,这里的问号部分该如何表达?
End If
End If
End If
Next
End If
End If
Next
[此贴子已经被作者于2019/8/2 17:25:33编辑过]