我用Access做的数据库a.mbd里面有3个表a1,a2,a3;
然后添加了数据源
然后用vc建了个工程exe选项都是默认
然后我为3个表添加了3个类,通过这3个类对数据库进行操作,
程序在我的电脑上可以完好运行
问题是我做好的程序怎么能放到别人的电脑上?
我的意思是如果别人电脑上没有vc6.0,他怎么用?请高人指教。。
然后添加了数据源
然后用vc建了个工程exe选项都是默认
然后我为3个表添加了3个类,通过这3个类对数据库进行操作,
程序在我的电脑上可以完好运行
问题是我做好的程序怎么能放到别人的电脑上?
我的意思是如果别人电脑上没有vc6.0,他怎么用?请高人指教。。
我建数据源是:控制面板-》管理工具->数据源(odbc)加的数据源
建的工程是MFC的exe文件
我放到别人电脑上了 可是不能用
如果说出现了问题,你可以查看一下你的网络地址什么地方出错了.
把exe文件和mdb文件复制到别的机子上。
建议在写代码的时候使用绝对路径读取mdb文件,就没问题了。
给你个我用ado连接的例子://前面就省略了
bool CRunSql::ConnectDataBase()
{
try
{
//构造数据库所在路径 加入
//#include <stdlib.h>
//#include <stdio.h> char path_buffer[_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
CString str;
GetModuleFileName(NULL,path_buffer,_MAX_PATH);//获取exe文件所在绝对路径
_splitpath( path_buffer, drive, dir, fname, ext );
str+=drive;
str+=dir;
strcpy(path_buffer,str.GetBufferSetLength(str.GetLength()));
str.Empty();
str+="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
str+=path_buffer;
str+="\\ts.mdb;Persist Security Info=False";
//假设你的数据库文件为ts.mdb,这里获得ts.mdb相对对exe文件所在的路径,从而构成连接字符串
m_database->ConnectionString=str.GetBufferSetLength(str.GetLength());
m_database->Open("","","",-1);
}
catch(...)
{
AfxMessageBox("数据库连接错误");
return false;
}
return true;
}
//后面也省略了
我是这样做的,你需要源代码可以邮给你:[email protected] 邮件标题请注明“csdn××问题解答”
如果不是用ADO连接的话,需要配置数据源。
{
//配置数据源
CString szPath;
GetModuleFileName(NULL,szPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
szPath.ReleaseBuffer();
int npos;
npos = szPath.ReverseFind('\\');
szPath=szPath.Left(npos); //find the directory of the database
CString szFile=szPath+"\\Info.mdb"; // get the database file with path
char szAttr[256];
sprintf(szAttr,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","info",szFile,szPath);
int len = strlen(szAttr);
for(int i=0;i<len ;i++)
if(szAttr[i]=='?')
szAttr[i]='\0';
if(FALSE==SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szAttr))
{
AfxMessageBox("配置数据源失败 !\n程序将退出运行! ");
return FALSE;
}
}
改一下就能用了
2、用SQLConfigDataSource自动配置数据源。