搬家第44天-citect2018利用批处理文件和注册表文件生成access数据库的ODBC链接

今天重温了一下citect2018的练习。主要功能是做局域网上一台计算机上ACCESS数据库的ODBC连接。access数据库所在文件是windows10系统,citect2018和ODBC连接计算机也是windows10系统。下面一步一步的进行设置。
1. access数据的计算机的设置
在windows系统-控制面板中,找到“网络和internet”,然后选择“网络和共享中心”,选择“更改高级共享设置”。
启用网络发现,启用文件和打印机共享。
所有网络设置中选择“无密码保护的共享”
2. 在citect2018所在计算机上的网络设置中“启用网络发现”
3. access数据库所在的文件夹启用共享。
4. 在citect2018新建一个项目,写以下cicode代码
FUNCTION CreateDiskImage()
//先生成磁盘映射
INT sfile,FileClosed,runregfile,sfile1,FileClosed1,aa
FileClosed=10
FileClosed1=10
STRING prjpath,prjfileinreg,regfile,strDBQ,batfile
prjpath=PathToStr("[run]")
regfile=prjpath+"\createODBC.reg"
strDBQ="^"DBQ^"=^"" +prjfileinreg+"^""
IF FileExist(regfile) THEN   //判断该文件存在是否存在
  FileDelete(regfile)      //删除该文件
END
sfile=FileOpen(regfile,"a+")
WHILE NOT FileExist(regfile) DO
//循环等待批处理文件生成,但是一个空文件
END
batfile=prjpath+"CreateDiskImage.bat"
IF FileExist(batfile) THEN   //判断该文件存在是否存在
  FileDelete(batfile)      //删除该文件
END
sfile1=FileOpen(batfile,"a+")
WHILE NOT FileExist(batfile) DO
//循环等待批处理文件生成,但是一个空文件
END
//写批处理文件内容
//FileWrite(sfile1,"reg import "+prjpath+"createODBC.reg")
FileWrite(sfile1,"NET USE Z: \\局域网计算机名字\共享文件夹的名字")
//NET USE 驱动器名: \\服务器名\共享文件名
FileClosed1=FileClose(sfile1)
WHILE FileClosed1<>0 DO
//循环等待文件完全关闭
END
//msgbox "PM1"
Login("admin","123")
WHILE UserInfo(1)<>"admin" DO
//等待登录成功
END
aa=Exec(batfile,6)//生成磁盘映射
//生成注册表文件,形成ODBC链接
//Windows Registry Editor Version 5.00
FileWrite(sfile,"Windows Registry Editor Version 5.00")
FileWrite(sfile,"^r^n")
//[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
FileWrite(sfile,"[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]")
FileWrite(sfile,"^r^n")
//"PM4_BD_ACCESS"="Microsoft Access Driver (*.mdb)"
FileWrite(sfile,"^"PM4_BD_ACCESS^"=^"Microsoft Access Driver (*.mdb)^"")
FileWrite(sfile,"^r^n")
//[HKEY_USERS\S-1-5-21-2418944028-154550032-2421329386-1001\Software\ODBC\ODBC.INI\ODBC Data Sources]
FileWrite(sfile,"[HKEY_USERS\S-1-5-21-2418944028-154550032-2421329386-1001\Software\ODBC\ODBC.INI\ODBC Data Sources]")
FileWrite(sfile,"^r^n")
//"PM4_BD_ACCESS"="Microsoft Access Driver (*.mdb)"
FileWrite(sfile,"^"PM4_BD_ACCESS^"=^"Microsoft Access Driver (*.mdb)^"")
FileWrite(sfile,"^r^n")
//[HKEY_USERS\S-1-5-21-2418944028-154550032-2421329386-1001\Software\ODBC\ODBC.INI\PM4_BD_ACCESS]//PM4_BD_ACCESS是ODBC的名字
FileWrite(sfile,"[HKEY_USERS\S-1-5-21-2418944028-154550032-2421329386-1001\Software\ODBC\ODBC.INI\PM4_BD_ACCESS]")
FileWrite(sfile,"^r^n")
//"Driver"="C:\\Windows\\system32\\odbcjt32.dll"
FileWrite(sfile,"^"Driver^"=^"C:\\Windows\\system32\\odbcjt32.dll^"")
FileWrite(sfile,"^r^n")
//"DBQ"="Z:\\myaccess.mdb"
FileWrite(sfile,"^"DBQ^"=^"Z:\\myaccess.mdb^"")
FileWrite(sfile,"^r^n")
//"Description"="THIS IS A ACCESS LINK2"
FileWrite(sfile,"^"Description^"=^"THIS IS A ACCESS LINK2^"")
FileWrite(sfile,"^r^n")
//"DriverId"=dword:00000019
FileWrite(sfile,"^"DriverId^"=dword:00000019")
FileWrite(sfile,"^r^n")
//"FIL"="MS Access;"
FileWrite(sfile,"^"FIL^"=^"MS Access;^"")
FileWrite(sfile,"^r^n")
//"SafeTransactions"=dword:00000000
FileWrite(sfile,"^"SafeTransactions^"=dword:00000000")
FileWrite(sfile,"^r^n")
//"UID"=""
FileWrite(sfile,"^"UID^"=^"^"")
FileWrite(sfile,"^r^n")
//"PM4_BD_ACCESS"="Microsoft Access Driver (*.mdb)"
FileWrite(sfile,"^"PM4_BD_ACCESS^"=^"Microsoft Access Driver (*.mdb)^"")
FileWrite(sfile,"^r^n")
//[HKEY_USERS\S-1-5-21-2418944028-154550032-2421329386-1001\Software\ODBC\ODBC.INI\PM4_BD_ACCESS\Engines]
FileWrite(sfile,"[HKEY_USERS\S-1-5-21-2418944028-154550032-2421329386-1001\Software\ODBC\ODBC.INI\PM4_BD_ACCESS\Engines]")
FileWrite(sfile,"^r^n")
//[HKEY_USERS\S-1-5-21-2418944028-154550032-2421329386-1001\Software\ODBC\ODBC.INI\PM4_BD_ACCESS\Engines\Jet]
FileWrite(sfile,"[HKEY_USERS\S-1-5-21-2418944028-154550032-2421329386-1001\Software\ODBC\ODBC.INI\PM4_BD_ACCESS\Engines\Jet]")
FileWrite(sfile,"^r^n")
//"ImplicitCommitSync"=""
FileWrite(sfile,"^"ImplicitCommitSync^"=^"^"")
FileWrite(sfile,"^r^n")
//"MaxBufferSize"=dword:00000800
FileWrite(sfile,"^"MaxBufferSize^"=dword:00000800")
FileWrite(sfile,"^r^n")
//"PageTimeout"=dword:00000005
FileWrite(sfile,"^"PageTimeout^"=dword:00000005")
FileWrite(sfile,"^r^n")
//"Threads"=dword:00000003
FileWrite(sfile,"^"Threads^"=dword:00000003")
FileWrite(sfile,"^r^n")
//"UserCommitSync"="Yes"
FileWrite(sfile,"^"UserCommitSync^"=^"Yes^"")
FileWrite(sfile,"^r^n")
FileClosed=FileClose(sfile)
//注册表文件生成完毕,关闭它
WHILE FileClosed<>0 DO
//循环等待文件完全关闭
END
batfile=prjpath+"importReg.bat"
IF FileExist(batfile) THEN   //判断该文件存在是否存在
  FileDelete(batfile)      //删除该文件
END
sfile1=FileOpen(batfile,"a+")
WHILE NOT FileExist(batfile) DO
//循环等待批处理文件生成,但是一个空文件
END
//写批处理文件内容
FileWrite(sfile1,"reg import "+prjpath+"createODBC.reg")
FileClosed1=FileClose(sfile1)
WHILE FileClosed1<>0 DO
//循环等待文件完全关闭
END
//Login("admin","123")
//WHILE UserInfo(1)<>"admin" DO
//等待登录成功
//END
aa=Exec(batfile,6)//生成ODBC配置
END
5. 在citect2018的设置编辑器添加
这一项是为了使exec语句能够执行
将adminitrators角色的“允许执行”修改为true,添加用户admin,密码设置为123,角色为administrators
新建一个画面,添加一个按钮,鼠标点击时执行CreateDiskImage()函数
 
项目保存编译,执行,鼠标点击画面上的按钮,就能够自动生成局域网上access数据库的ODBC连接了
posted @ 2021-03-13 20:40  来自金沙江的小鱼  阅读(349)  评论(0编辑  收藏  举报