我用Access做的数据库a.mbd里面有3个表a1,a2,a3;
然后添加了数据源
然后用vc建了个工程exe选项都是默认
然后我为3个表添加了3个类,通过这3个类对数据库进行操作,
程序在我的电脑上可以完好运行
问题是我做好的程序怎么能放到别人的电脑上?
我的意思是如果别人电脑上没有vc6.0,他怎么用?请高人指教。。

解决方案 »

  1.   

    你把EXE文件拷贝到其他电脑上,如果所在电脑没有装VC,就需要你把MFC的动态库,拷贝到EXE文件所在的目录下,这样就可以运行了!
      

  2.   

    我试了 他提示没有数据源,或未设置数据什么路径
    我建数据源是:控制面板-》管理工具->数据源(odbc)加的数据源
    建的工程是MFC的exe文件
    我放到别人电脑上了 可是不能用
      

  3.   

    用VC的Release版来编译,不管对方的计算机是否装的有VC,都可以用.
    如果说出现了问题,你可以查看一下你的网络地址什么地方出错了.
      

  4.   


    把exe文件和mdb文件复制到别的机子上。
      

  5.   

    这个问题非常简单,你写代码时使用了本地数据源,拿到别的机器上去自然,数据源就对不上了。
    建议在写代码的时候使用绝对路径读取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××问题解答”
      

  6.   


    如果不是用ADO连接的话,需要配置数据源。
      

  7.   

    把你的程序用 Release 方式编译一次,然后把 exe 和 mdb 文件拷贝到别人的机器上
      

  8.   

    1、程序做成RELEASE版本的,实在不行就把MFC的动态库文件一起拷过去。2、你是用数据源连接的数据库,如果拷到别人电脑上不首先建立数据源肯定不能用了,可以通过程序自动建立数据源:BOOL CXXXApp::InitInstance()
    {
    //配置数据源
    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;
    }
    }
    改一下就能用了
      

  9.   

    1、工程设为静态链接MFC,编译为Release
    2、用SQLConfigDataSource自动配置数据源。