请教连接access的问题

maxzx 2004-12-27 08:03:16
我在本机上写了一个程序,打包后运行exe程序,一切正常,然后拷到别人的机器上,就没有用,是pb9+access,是通过odbc连的,然后在别人的机器上我也同样的建了一个odbc,代码是这样的
// Profile db
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=db;UID=1;PWD=1'"
我已经在别人的机器上一模一样的建了一个db的odbc
并且数据库放的路径和我的机器一模一样,但是sqlca.sqlcode的值是-1,请高手指点为什么
还有没有什么别的方法!
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
maxzx 2004-12-28
  • 打赏
  • 举报
回复
别人机器上只装了access,代码如下,大部分是我拷贝帖子的
ulong l_buf
string database,odbc_name
l_buf = 100
string ls_dir = Space(l_buf)
GetCurrentDirectoryA(l_buf,ls_dir)//API函数
messagebox(ls_dir,'')
odbc_name='db'//这是的名称,根据自己的要求改名称就可以了
database='C:\db2.mdb'//这是数据库的路径和名称,根据要求自己改,ls_dir是声明API函数所取得的当前程序路径
//取得access数据库ODBC驱动
String ls_WinPath,ls_syspath,ls_curpath
ulong luf_win
luf_win=144
ls_WinPath =Space(144)
ls_syspath =Space(144)
GetWindowsDirectoryA(ls_WinPath,luf_win )//API函数

GetSystemDirectoryA(ls_syspath,luf_win)//API函数
messagebox(ls_WinPath,ls_syspath)
LS_CURPATH=ls_syspath+'\odbcjt32.dll'
RegistrySet( 'HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC DataSources',odbc_name,RegString!,'Microsoft Access Driver (*.mdb)')
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name,'DBQ','C:\db.mdb')
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name,'Description','')
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name,'Driver',LS_CURPATH)
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name,'DriverId',ReguLong!,25)
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name,'FIL',"MS Access;")
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name,'SafeTransactions',ReguLong!,0)
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name,'UID',"1")
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name+'\Engines\Jet','MaxBufferSize',Regulong!,2048)
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name+'\Engines\Jet','ImplicitCommitSync','')
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name+'\Engines\Jet','PageTimeout',ReguLong!,5)
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name+'\Engines\Jet','Statistics',Regulong!,0)
Registryset('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\'+odbc_name+'\Engines\Jet','Threads',Regulong!,3)

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=db;UID=1;PWD=2'"
Connect Using Sqlca;
有两个问题,如果在打包的程序在新建文件夹下面,报dde server window 错误,在根目录下不报错,还有在以数字为名的文件夹下面不报错
放到别的机器上运行,自动会建立odbc,不过还是连接不上,请教原因,急,在线等,分不够可加


li_d_s 2004-12-28
  • 打赏
  • 举报
回复
别人机器上也装了pb9?会不会是少dll?
maxzx 2004-12-28
  • 打赏
  • 举报
回复
分不是问题,希望达人解答问题
maxzx 2004-12-28
  • 打赏
  • 举报
回复
我已经配完odbc了啊,还是不能在别的机器上运行,和我本机上一模一样的odbc
maxzx 2004-12-28
  • 打赏
  • 举报
回复
是不是用的人必须装access阿
renwanly 2004-12-27
  • 打赏
  • 举报
回复
OLEDB 连接
ODBC 如果连接的话还要配置ODBC数据源
连接方式你再给个贴子加点儿分儿就告诉你,其实这个问题我已经在前面回答过很多次了:D
bunnysky 2004-12-27
  • 打赏
  • 举报
回复
ODBC的配置问题,你看一下论坛的其它相关的贴子
建议你改用OLE DB连接方式,这样在别人的机子上不需要配置任何东东就可以了!
hygougou 2004-12-27
  • 打赏
  • 举报
回复
控制面版的ODBC配置一下

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧