vc的ODBC数据源,连接的问题

我用VC做的数据库程序如果移动到别的机器上,一运行就出现未发现数据源,能问下老师帮我解决我这个难题吗 ?解决这个问题,问题是:怎样我把我做的程序移动到别的机器上,不出现我上面所说的问题

1:
听你这么说,你已经将程序打包了啊。
要是把你的程序拿到没有VC的电脑上,会提示你缺少很多的dll文件。看样子你已经打包了,或者是另外一台电脑上也有 VC。
2:
你出现的问题,楼上已经说了,就是这个原因,数据库程序需要有数据源这个桥梁来连接通信(Access可以不用)。
要想不出现这个问题,也简单啊,在另外一台电脑上,你再创建一个相应的数据源不就可以了吗。用手动就可以,用程序实现也可以。
手动添加数据源太麻烦,程序拿到哪台电脑上就得手动添加一个数据源。
你可以选择在程序中实现,自动添加数据源。这样,只要在另外一台电脑上运行,就在他的电脑上自动创建了一个数据源。
3:实现(自己总结)
/*
头文件:#include <odbcinst.h> //SQLConfigDataSource
函数:CrreateDSN
功能:动态创建数据源
输入参数:CString str 名称
CString strDatabase 数据库的路径
CString strDescription 说明
CString strServer 服务器名称
CString strUID 用户名
int iCount 标识数据库类型, 1表示Access数据库; 2表示SQL Server; 3表示Oracle数据库
返回值: int型
1: 表示创建Access数据源成功
-1: 表示创建Access数据源失败
2: 表示创建SQL Server数据源成功
-2: 表示创建SQL Server数据源失败
3: 表示创建Oracle数据源成功
-3: 表示创建Oracle数据源失败
-4: 表示不支持创建其他类型的数据源
*/
AFX_EXT_CLASS int CrreateDSN(CString str, CString strDatabase, CString strDescription, CString strServer, CString strUID, int iCount)
{
char* Attributes;
int mlen, i;
Attributes=new char[256];
switch(iCount)
{
case 1:
sprintf(Attributes,"DSN=%s! DESCRIPTION=%s! DBQ=%s! FIL=MicrosoftAccess! DEFAULTDIR=D:\\Database!!",
str, strDescription, strDatabase);
mlen = strlen(Attributes);
for (i=0; i<mlen; i++)
{
if (Attributes[i] == '!')
Attributes[i] = '\0';
}
if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)Attributes))
return 1;
else
return -1;
break;
case 2:
sprintf(Attributes,"DSN=%s!Description=%s!server=%s!Database=%s!",
str, strDescription, strServer, strDatabase);
mlen = strlen(Attributes);
for (i=0; i<mlen; i++)
{
if (Attributes[i] == '!')
Attributes[i] = '\0';
}
if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"SQL Server\0",(LPCSTR)Attributes))
return 2;
else
return -2;
break;
case 3:
sprintf(Attributes,"DSN=%s!Description=%s!ServerName=%s!UserID=%s!",
str, strDescription, strServer, strUID);
mlen = strlen(Attributes);
for (i=0; i<mlen; i++)
{
if (Attributes[i] == '!')
Attributes[i] = '\0';
}
if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Oracle in OraHome92\0",(LPCSTR)Attributes))
return 3;
else
return -3;
break;
default:
return -4;
break;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-12-02
你原来电脑里的数据库在别人的电脑里没有被创建

我用VC程序建立ODBC方式数据库连接,用CRecordSet关联了两个表,请问我...
CDatabase* m_Database;\/\/你已经和数据库连接上了是吗?没有的话先连接上。\/\/ m_Database->OpenEx(str, CDatabase::noOdbcDialog));\/\/ str 是数据源。\/\/然后就向库中插入数据吧!CString strSQL;strSQL.Format("\/\/一条SQL语句,就是insert into");m_Database->ExecuteSQL(strSQL);\/\/...

vc连接sql数据库的方法
1、双击打开数据源即ODBC;2、在用户DSN选项卡中选择添加“SQL Server”;3、完成后会弹出对话框,并输入一个符合条件的名称;4、选择使用用户输入登录ID和密码;5、将默认的数据库改为“hmsfy”;6、点击“完成”选项,找到所创文件的路径,写入代码段即可完成连接。

VC 连接数据库的方法( 网上找的方法不清晰,求自己连接的作品!
双击打开数据源(ODBC),在用户DSN选项卡 选择添加》SQL Server》完成 弹出对话框。名称随便写个你想要的名称,描述无所谓,服务器就是本台计算机的名称(如果不知道可以用.来代替)。下一步:选择使用用户输入登录ID,登陆ID一般是sa,密码是你sa在SQl中的密码,然后下一步,更改默认的数据库为:...

Vc6.0 ODBC连接数据库时,运行程序时总会弹出连接对话框。每操作一步都 ...
连接数据库时在连接参数中指定用户名和密码,另外查一下有没有总是提示用户名密码窗口的参数,把它设为false

VC6.0运行工作站时出现打开数据库失败,为什么??
VC 用ODBC连接数据库的时候要配置ODBC 的 配置ODBC步骤:打开控制面板→管理工具→数据源 (ODBC) →系统DNS→添加

连接数据库失败:未指定的错误
看提示可能此系统要求机器上要配置一个数据源,名为HR,你在控制面板-管理工具-数据源(ODBC)中,新建一个名为HR的Sqlserver数据源(机器或用户的均可),指向你的HR库,应该就可以了。--- 首先声明我不懂VC++。你先确定你的机器上装了msdac.exe,或者不管装没装,下载一个,再装一次。看看问题有...

vc6.0制作的ocx控件 可以连接数据库吗
感觉应该是基本的概念有些不清楚,odbc是一种连接方法,odbc的建立过程: ① 建立一个env,一个env对应多个连接; ② 一个数据库可以建立多个连接,或者多个连接对应一个数据库 ③ 一个连接可以对应多个stmt

控制面板中有这样一个东东:数据源(ODBC).是什么东东.有什么用处._百度...
ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。各部件之间的关系如图下图所示:应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等...

vc++提示“[microsoft][odbc 驱动程序管理器]未发现数据源名称并且未指...
在VC中配置数据源:BOOL SQLConfigDataSource( NULL,ODBC_ADD_DSN,"驱动名称","新数据源缺省的驱动程序");举个例子吧 假如配置ACCESS的数据源,数据源名称为DB,文件名为DB.mdb;CFileDialog f(TRUE,"mdb",NULL,NULL,"MDB 文件(*.mdb)|*.mdb||",NULL);CString fpath;CString file;CString str;...

换了台机器,VC++调试的时候出现 :未发现数据源名称且未指定默认驱动程序...
数据库连接的配置问题 仔细检查你数据库连接那里的配置 对了,新的机器也是需要数据源的..把注册表中的数据源内容导出到一个*.reg文件,然后在现在的机器上运行一下,导入注册表就行了。注册表的位置:HKEY_LOCAL_MACHINE\\SOFTWARE\\ODBC\\ODBC.INI 右击选择“导出”,即可。

相似回答
大家正在搜