开机自启动程序,程序自启动后无法连接Access数据库。 我是在注册表的run下实现自启动的,程序可以启动,就是在连接数据库时出错。如果不是开机自启动,其它时候启动时很正常,不会出错。请大家帮忙。谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用什么方式连数据库??是ODBC还是ADO??报什么错?? 在Run里启动的程序,当前路径不是你程序所在文件夹,而是C:\Windows\System32你在程序里连接数据库mdb文件时,可以用GetModuleFileName来取得程序所在路径或者你建一个快捷方式,直接放在开始菜单的启动里 TO ribut9225 : 我用的是ODBC方式连接的数据库。To vocanicy: 就是用的GetModuleFileName来取得程序所在的路径。 我的这个自启动程序,一是写入注册表,以便开机时启动它。二是它是为了监控另外一个程序。防止那个程序非法关闭。我编程序时,用记事本程序来做被监控的程序,自启动程序可以完成上面的两个功能。可是,当我换了个需要数据库的被监控程序时,出现了我碰到的错误:连接数据库失败。我所用的连接数据库的方式是ODBC方式。 conn.CreateInstance("ADODB.Connection"); try { conn->Open(zd2.getString(),"","",-1); } catch(_com_error &e) { conn=0; AfxMessageBox("Connection DSN is error."); exit(0); } 用IShellLink在目标目录创建一个快捷方式开始菜单的目录可以用SHGetSpecialFolderPath获得 To:jiangsheng 我早上已经这么做的,但是还是出现连接不上数据库的错误。用了注册表和写入开始菜单两种方法,还是不行。那个ODBC方式连接数据库,系统启动时它怎么走的。 当前路径问题LPWSTR path = new WCHAR[256];//存放当前路径 ::GetCurrentDirectory(256,path);把当前路径设置到连接数据库字符串里 介绍个经验给你,如果遇到这种不能调试的问题可以将错误信息记录到文件中,也就是创建一个自己的调试日志。然后通过日志文件就知道程序究竟遇到什么错误知道原因任何问题都好解决的。HRESULT hr;hr = conn.CreateInstance("ADODB.Connection"); if(FAILED(hr)) 记录hr;try { hr = conn->Open(zd2.getString(),"","",-1); if(FAILED(hr)) 记录hr;} catch(_com_error &e) { 记录e.ErrorMessage();} 问一个跟卡有点关系的基础问题 如何开发VISUAL STUDIO 2010插件? 小学生c++题目 大家帮忙看一个VC++的程序 Debue Assertion Failed! 如何对文件夹或磁盘进行加密? 有没有可以输入的MessageBox????? 采鸟问题,关于图形处理 [vpn] 有人用VC编译成功过openvpn-gui没有 求助简单的数据库链接 请大家解决个问题 SSDT Hook后如何取得主调者的模块名
是ODBC还是ADO??报什么错??
你在程序里连接数据库mdb文件时,可以用GetModuleFileName来取得程序所在路径
或者你建一个快捷方式,直接放在开始菜单的启动里
To vocanicy: 就是用的GetModuleFileName来取得程序所在的路径。
我编程序时,用记事本程序来做被监控的程序,自启动程序可以完成上面的两个功能。
可是,当我换了个需要数据库的被监控程序时,出现了我碰到的错误:连接数据库失败。我所用的连接数据库的方式是ODBC方式。
conn.CreateInstance("ADODB.Connection");
try
{
conn->Open(zd2.getString(),"","",-1);
}
catch(_com_error &e)
{
conn=0;
AfxMessageBox("Connection DSN is error.");
exit(0);
}
开始菜单的目录可以用SHGetSpecialFolderPath获得
我早上已经这么做的,但是还是出现连接不上数据库的错误。用了注册表和写入开始菜单两种方法,还是不行。那个ODBC方式连接数据库,系统启动时它怎么走的。
LPWSTR path = new WCHAR[256];//存放当前路径
::GetCurrentDirectory(256,path);把当前路径设置到连接数据库字符串里
然后通过日志文件就知道程序究竟遇到什么错误
知道原因任何问题都好解决的。HRESULT hr;
hr = conn.CreateInstance("ADODB.Connection");
if(FAILED(hr))
记录hr;try
{
hr = conn->Open(zd2.getString(),"","",-1);
if(FAILED(hr))
记录hr;
}
catch(_com_error &e)
{
记录e.ErrorMessage();
}