LPCTSTR strCon=(LPCTSTR)("Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=kejie;Data Source=2012-0524-1122");
adoc.OnInitADOConn(strCon);
一下时连接类
BOOL ADOConn::OnInitADOConn(LPCTSTR ConnStr)
{
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance(_T("ADODB.Connection") );
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = _bstr_t(ConnStr);
m_pConnection->Open(strConnect,"","",adModeUnknown );
return TRUE;
}
catch(_com_error e)
{
// 显示错误信息
TRACE( (_bstr_t)e.Description() );
AfxMessageBox(e.Description() );
// sprintf(error,"连接数据库失败 请检查连接字符串/r/n当前连接字符串为:%s",ConnStr);
// throw new CADOException(error);
throw new CADOException("连接数据库失败");
}
}
俺用的是ADO连接数据库 和那个ODBC有么事关系呢?
蛋疼中。。。
21 个解决方案
#1
你连接的是什么数据库?ODBC驱动程序 你安装了没?如果你连接的是mysql的话,你需要安装mysql-connector-odbc驱动。
#2
我连接的是server2008,我用ADO连接数据库,应该不需要ODBC驱动吧。
#3
连接字符串里:Data Source=2012-0524-1122设置有问题。
你的数据库是在哪?
如果在本地,设置Data Source=.
如果在其他服务器,设置Data Source=服务器IP,例如:Data Source=192.168.1.12
你的数据库是在哪?
如果在本地,设置Data Source=.
如果在其他服务器,设置Data Source=服务器IP,例如:Data Source=192.168.1.12
#4
这是我的server2008引擎名称,也是我安装server2008的日期,是server默认的。数据库也在我电脑上,我用.试过了,也不行,也是同样的错误。
#5
我的链接操作,是再一个button控件的消息函数里面实现的 ,不知道这个是否有问题?
#6
[img=http://user.qzone.qq.com/399035165/infocenter#!app=4][/img][img=http://user.qzone.qq.com/399035165/infocenter#!app=4][/img]
#7
哦,你是不是没有添加ADO支持啊?
代码如下:
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
代码如下:
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
#8
我加了啊 ,我贴代码给你看看。
#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
#include "targetver.h"
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#include <afxdisp.h> // MFC 自动化类
//#include "icrsint.h"
//#include "adoid.h"
//#include <vector>
//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
#include <afxcontrolbars.h> // 功能区和控件条的 MFC 支
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
#endif
//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF");
#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
#include "targetver.h"
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#include <afxdisp.h> // MFC 自动化类
//#include "icrsint.h"
//#include "adoid.h"
//#include <vector>
//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
#include <afxcontrolbars.h> // 功能区和控件条的 MFC 支
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
#endif
//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF");
#9
跪求高手给个解答啊,求求啦。
#10
m_ConnectionStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=FALSE;Initial Catalog=test;Data Source=.";
这是我的链接字符串,是可以用的。用户名和密码是在下面设置的:
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect = m_ConnectionStr.GetBuffer();
m_pConnection->Open(strConnect,"sa","123",adModeUnknown);
这是我的链接字符串,是可以用的。用户名和密码是在下面设置的:
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect = m_ConnectionStr.GetBuffer();
m_pConnection->Open(strConnect,"sa","123",adModeUnknown);
#11
还是不行啊。 请问那个 Integrrated Security =SSPI 是什么? 这个字符段 m_ConnectionStr你是怎么获得的?我用UDL文件连接数据库成功了,我的字符段就是从那儿获取的,为什么就不行呢?你的那个GetBuffer()函数,能否用强制类型转换得到?
还有一点就是#import。。。。是否需要
加入这两个头文件#include "icrsint.h"
#include "adoid.h"
还有一点就是#import。。。。是否需要
加入这两个头文件#include "icrsint.h"
#include "adoid.h"
#12
1、Integrated Security 身份验证方式
当为false时,将在连接中指定用户ID和密码。
当为true时,将使用当前的Windows帐户凭据进行身份验证。
可识别的值为true、false、yes、no以及与true等效的sspi。
==============
指你使用windows自带的安全验证机制,这时你不用加uid和password也可以打开数据库
如果你没有那一句的话,就必须在联接字符串里写上uid=sa;password=00;
否则你不能打开数据库。
2、 m_ConnectionStr定义在代码里的,连接字符串也是写在代码里的;变量的类型为CString,GetBuffer()是CString类里的函数,你可以转化为其他类型。
3、使用#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")时,不需要加头文件的
当为false时,将在连接中指定用户ID和密码。
当为true时,将使用当前的Windows帐户凭据进行身份验证。
可识别的值为true、false、yes、no以及与true等效的sspi。
==============
指你使用windows自带的安全验证机制,这时你不用加uid和password也可以打开数据库
如果你没有那一句的话,就必须在联接字符串里写上uid=sa;password=00;
否则你不能打开数据库。
2、 m_ConnectionStr定义在代码里的,连接字符串也是写在代码里的;变量的类型为CString,GetBuffer()是CString类里的函数,你可以转化为其他类型。
3、使用#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")时,不需要加头文件的
#13
那为什么我用udl文件链接数据库 获取的那个字段木有密码呢?
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=kejie;Data Source=2012-0524-1122
我觉得这有些问题
况且,我用ADO链接应该不会和ODBC有什么问题吧
我同学用java链接需要下ODBC驱动。。
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=kejie;Data Source=2012-0524-1122
我觉得这有些问题
况且,我用ADO链接应该不会和ODBC有什么问题吧
我同学用java链接需要下ODBC驱动。。
#14
1、你先试试用sa用户能不能登录上指定的数据库。
2、你测试一下,不从文件里读连接字符串,你直接在代码里写一个字符串试试,看看能不能正常连接到数据库,连接字符串用我给你的那个!
2、你测试一下,不从文件里读连接字符串,你直接在代码里写一个字符串试试,看看能不能正常连接到数据库,连接字符串用我给你的那个!
#15
谢谢啊,我试过了,还是不行。我再等几天实在不行,我就结贴,分我还是给你啊 ,谢谢你一直来都这么支持我。
#16
呵呵,不客气,祝愿你的问题能尽快的解决!
#17
柯同学你好
#18
你好,李同学。欢迎回答我的问题。
#19
lz问题解决了没?问题关键点在哪呢?也遇到同样问题了。
#20
ADO没设置好。你可以测试一下ADO与数据库是否测试正常,然后再写其他的内容。
#21
连接好了,我试过的。这都一年前的东西了
额
额
#1
你连接的是什么数据库?ODBC驱动程序 你安装了没?如果你连接的是mysql的话,你需要安装mysql-connector-odbc驱动。
#2
我连接的是server2008,我用ADO连接数据库,应该不需要ODBC驱动吧。
#3
连接字符串里:Data Source=2012-0524-1122设置有问题。
你的数据库是在哪?
如果在本地,设置Data Source=.
如果在其他服务器,设置Data Source=服务器IP,例如:Data Source=192.168.1.12
你的数据库是在哪?
如果在本地,设置Data Source=.
如果在其他服务器,设置Data Source=服务器IP,例如:Data Source=192.168.1.12
#4
这是我的server2008引擎名称,也是我安装server2008的日期,是server默认的。数据库也在我电脑上,我用.试过了,也不行,也是同样的错误。
#5
我的链接操作,是再一个button控件的消息函数里面实现的 ,不知道这个是否有问题?
#6
[img=http://user.qzone.qq.com/399035165/infocenter#!app=4][/img][img=http://user.qzone.qq.com/399035165/infocenter#!app=4][/img]
#7
哦,你是不是没有添加ADO支持啊?
代码如下:
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
代码如下:
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
#8
我加了啊 ,我贴代码给你看看。
#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
#include "targetver.h"
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#include <afxdisp.h> // MFC 自动化类
//#include "icrsint.h"
//#include "adoid.h"
//#include <vector>
//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
#include <afxcontrolbars.h> // 功能区和控件条的 MFC 支
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
#endif
//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF");
#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
#include "targetver.h"
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#include <afxdisp.h> // MFC 自动化类
//#include "icrsint.h"
//#include "adoid.h"
//#include <vector>
//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
#include <afxcontrolbars.h> // 功能区和控件条的 MFC 支
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
#endif
//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF");
#9
跪求高手给个解答啊,求求啦。
#10
m_ConnectionStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=FALSE;Initial Catalog=test;Data Source=.";
这是我的链接字符串,是可以用的。用户名和密码是在下面设置的:
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect = m_ConnectionStr.GetBuffer();
m_pConnection->Open(strConnect,"sa","123",adModeUnknown);
这是我的链接字符串,是可以用的。用户名和密码是在下面设置的:
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect = m_ConnectionStr.GetBuffer();
m_pConnection->Open(strConnect,"sa","123",adModeUnknown);
#11
还是不行啊。 请问那个 Integrrated Security =SSPI 是什么? 这个字符段 m_ConnectionStr你是怎么获得的?我用UDL文件连接数据库成功了,我的字符段就是从那儿获取的,为什么就不行呢?你的那个GetBuffer()函数,能否用强制类型转换得到?
还有一点就是#import。。。。是否需要
加入这两个头文件#include "icrsint.h"
#include "adoid.h"
还有一点就是#import。。。。是否需要
加入这两个头文件#include "icrsint.h"
#include "adoid.h"
#12
1、Integrated Security 身份验证方式
当为false时,将在连接中指定用户ID和密码。
当为true时,将使用当前的Windows帐户凭据进行身份验证。
可识别的值为true、false、yes、no以及与true等效的sspi。
==============
指你使用windows自带的安全验证机制,这时你不用加uid和password也可以打开数据库
如果你没有那一句的话,就必须在联接字符串里写上uid=sa;password=00;
否则你不能打开数据库。
2、 m_ConnectionStr定义在代码里的,连接字符串也是写在代码里的;变量的类型为CString,GetBuffer()是CString类里的函数,你可以转化为其他类型。
3、使用#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")时,不需要加头文件的
当为false时,将在连接中指定用户ID和密码。
当为true时,将使用当前的Windows帐户凭据进行身份验证。
可识别的值为true、false、yes、no以及与true等效的sspi。
==============
指你使用windows自带的安全验证机制,这时你不用加uid和password也可以打开数据库
如果你没有那一句的话,就必须在联接字符串里写上uid=sa;password=00;
否则你不能打开数据库。
2、 m_ConnectionStr定义在代码里的,连接字符串也是写在代码里的;变量的类型为CString,GetBuffer()是CString类里的函数,你可以转化为其他类型。
3、使用#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")时,不需要加头文件的
#13
那为什么我用udl文件链接数据库 获取的那个字段木有密码呢?
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=kejie;Data Source=2012-0524-1122
我觉得这有些问题
况且,我用ADO链接应该不会和ODBC有什么问题吧
我同学用java链接需要下ODBC驱动。。
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=kejie;Data Source=2012-0524-1122
我觉得这有些问题
况且,我用ADO链接应该不会和ODBC有什么问题吧
我同学用java链接需要下ODBC驱动。。
#14
1、你先试试用sa用户能不能登录上指定的数据库。
2、你测试一下,不从文件里读连接字符串,你直接在代码里写一个字符串试试,看看能不能正常连接到数据库,连接字符串用我给你的那个!
2、你测试一下,不从文件里读连接字符串,你直接在代码里写一个字符串试试,看看能不能正常连接到数据库,连接字符串用我给你的那个!
#15
谢谢啊,我试过了,还是不行。我再等几天实在不行,我就结贴,分我还是给你啊 ,谢谢你一直来都这么支持我。
#16
呵呵,不客气,祝愿你的问题能尽快的解决!
#17
柯同学你好
#18
你好,李同学。欢迎回答我的问题。
#19
lz问题解决了没?问题关键点在哪呢?也遇到同样问题了。
#20
ADO没设置好。你可以测试一下ADO与数据库是否测试正常,然后再写其他的内容。
#21
连接好了,我试过的。这都一年前的东西了
额
额