当前位置:首页 » 编程语言 » c窗体adosql2005
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c窗体adosql2005

发布时间: 2022-09-23 06:21:30

❶ 怎样用VC的ADO连接数据库sql 2005啊

可以用ADO插件属性设置连接DB和连接方式,取得连接字符串。再用代码建立数据连接对象,加载连接字符串,将定义的数据连接实例化,并打开记录集对象。就可以了。

❷ VC++用ADO连接到SQL server 2005具体步骤

首先配置Sql 2005:

1. 配置SQL Server外围应用服务器,开启SQL Server 2005远程连接功能:“配置工具”->“SQL Server外围应用配置器”-> 选择“服务和连接的外围应用配置器”->选择Database Engine节点下的 “远程连接”-> 选择“本地连接和远程连接”-> 选择“同时使用TCP/IP和named pipes”-> 点击确定,重新启动数据库服务。2. 把登陆设置改为SQL Server 和 Windows 身份验证模式:打开SQL Server Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQL Server 和 Windows 身份验证模式”。3.修改SQL Server sa的密码:在SQL Server Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。注意SQL Server2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。4.设置SQL Server 的端口号 在SQL Server Configuration Manager管理器中,展开SQL Server 2005 Network Configuration项目 -> 单击下面的 Protocols for 'dbname' -> 在右侧的窗口中,右键单击"TCP/IP"项,选择"属性" -> 打开"TCP/IP properties"窗口 - > 单击"IP Address"选项卡 -> 将所有IP地址下面的 "TCP Port" 值设置成14335.确保开启SQL Server服务 在SQL Server Configuration Manager管理器中, 选中SQL Server 2005 Services,在右侧的窗口中启动SQL Server ('YourInstance'),6. 修改连接字符串,在字符串中加入SQl Server 服务的端口号. strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=nameWD=pwd");7.连接coder:stdafx.h中引用:#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")添加方法:

// 错误处理的
inline void TESTHR(HRESULT _hr)
{
if FAILED(_hr) _com_issue_error(_hr);
}

void initADO()
{
try
{
_RecordsetPtr pRs("ADODB.Recordset");
_ConnectionPtr pCn("ADODB.Connection");
_variant_t vtTableName("authors"), vtCriteria;
long ix[1];
SAFEARRAY *pSa = NULL;

pCn->Open("rovider=SQLOLEDB;Server=127.0.0.1,1433;Database=MyTest;User ID=sa;pwd=sa;Integrated Security=SSPI","","",adModeUnknown);
// Note 2, Note 3
pSa = SafeArrayCreateVector(VT_VARIANT, 1, 4);
if (!pSa) _com_issue_error(E_OUTOFMEMORY);

// 为第三个元素赋值TABLE_NAME(索引值2).
ix[0] = 2;
TESTHR(SafeArrayPutElement(pSa, ix, &vtTableName));

//由于Variant没有SafeArray的构造函数,所以手工设置Variant的数据类型和值。
vtCriteria.vt = VT_ARRAY | VT_VARIANT;
vtCriteria.parray = pSa;

pRs = pCn->OpenSchema(adSchemaColumns, vtCriteria, vtMissing);

long limit = pRs->GetFields()->Count;
for(long x = 0; x < limit; x++)
printf("%d: %s\n", x+1,
((char*) pRs->GetFields()->Item[x]->Name));
// Note 4
pRs->Close();
pCn->Close();
AfxMessageBox(_T("成功"));
}
catch(_com_error &e)
{
printf("Error:\n");
printf("Code = %08lx\n", e.Error());
printf("Code meaning = %s\n", (char*)e.ErrorMessage());
printf("Source = %s\n", (char*)e.Source());
printf("Description = %s\n", (char*)e.Description());
AfxMessageBox(_T("初始化失败"));
}
CoUninitialize();
}
// 错误处理的
inline void TESTHR(HRESULT _hr)
{
if FAILED(_hr) _com_issue_error(_hr);
}
void initADO()
{
try{
_RecordsetPtr pRs("ADODB.Recordset");
_ConnectionPtr pCn("ADODB.Connection");
_variant_t vtTableName("authors"), vtCriteria;
long ix[1];SAFEARRAY *pSa = NULL;
pCn->Open("rovider=SQLOLEDB;Server=127.0.0.1,1433;Database=MyTest;User ID=sa;pwd=sa;Integrated Security=SSPI","","",adModeUnknown);
// Note 2, Note 3
pSa = SafeArrayCreateVector(VT_VARIANT, 1, 4);
if (!pSa) _com_issue_error(E_OUTOFMEMORY);
// 为第三个元素赋值TABLE_NAME(索引值2).ix[0] = 2;
TESTHR(SafeArrayPutElement(pSa, ix, &vtTableName));
//由于Variant没有SafeArray的构造函数,所以手工设置Variant的数据类型和值。
vtCriteria.vt = VT_ARRAY | VT_VARIANT;vtCriteria.parray = pSa;
pRs = pCn->OpenSchema(adSchemaColumns, vtCriteria, vtMissing);
long limit = pRs->GetFields()->Count;
for(long x = 0; x < limit; x++)
printf("%d: %s\n", x+1, ((char*) pRs->GetFields()->Item[x]->Name)); // Note 4
pRs->Close();
pCn->Close();
AfxMessageBox(_T("成功"));
}
catch(_com_error &e)
{
printf("Error:\n");
printf("Code = %08lx\n", e.Error());
printf("Code meaning = %s\n", (char*)e.ErrorMessage());
printf("Source = %s\n", (char*)e.Source());
printf("Description = %s\n", (char*)e.Description());
AfxMessageBox(_T("初始化失败"));}CoUninitialize();
}

❸ BCB中怎么用ADOConnection控件连接SQL2005数据库

//DatabasePath是全局string变量,内容为文件路径如“c:\db.mdb”
if(FileExists(DatabasePath)) //如果数据库存在
{
//设置连接字符串,Persist Security Info=False表示不保留密码,防止后门。如果数据库有密码则加上Password项
ADOQuery1->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Mode=ReadWrite|Share Deny None;Data Source="+DatabasePath+";Persist Security Info=False;Jet OLEDB:Database Password=123456";
}//123456为数据库的密码

ADOQuery1->SQL->Clear(); //清除sql命令
ADOQuery1->SQL->Add("Select online from Users where id="+IntToStr(UserId));//加入sql命令
ADOQuery1->Open();//执行,注意,select的时候用Open方法,其他的用ExecSQL方法。

❹ 用C++Builder6的ADO控件如何连接SQL Server2005数据库为何选择服务器时出现错误却可以直接选择数据库

你数据库的地址没输就想找数据库就会出错。
地址,如果是本地的: 127.0.0.1,端口(一般1433)
127.0.0.1\ 实例名 (Local等)
远程的: IP,端口
IP\实例名
端口要在数据库管理界面设一下,一般设成1433
建议你到 www.csdn.net上,论坛上有C++BUILDER板块

❺ 我用vc做的操作界面如何连接上sql server数据库,是sql server2005的

(1).在文件stdafx.h中最后一个#endif的前一行写入
#import "C:\program files\common files\System\ado\msado15.dll" no_namespace \
rename("EOF","EndOfFile") \
rename("LockTypeEnum","newLockTypeEnum")\
rename("DataTypeEnum","newDataTypeEnum")\
rename("FieldAttributeEnum","newFieldAttributeEnum")\
rename("EditModeEnum","newEditModeEnum")\
rename("RecordStatusEnum","newRecordStatusEnum")\
rename("ParameterDirectionEnum","newParameterDirectionEnum")
如果你的系统不是安装在C盘的话就把#import 后面的C改成系统所有的盘
(2).在C***App类的
public:下加入
_RecordsetPtr m_pADOSet;
bool ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL);
在private:下加入_ConnectionPtr ADOConn;
在class C***App : public CWinApp
{
...
};之后#endif之前加入extern C***App theApp;

(3)在BOOL C***App::InitInstance()函数中Enable3dControls(); // Call this when linking to MFC statically这一行下面加入
if( FAILED(::CoInitialize(NULL)) )
{
AfxMessageBox("ADO Init failed");
return false;
}
try
{
ADOConn.CreateInstance(__uuidof(Connection));
ADOConn->Open("DSN=OBDC数据源;Provider=MSDASQL","用户","密码", adConnectUnspecified);//这一行要自已修改
}
catch(_com_error &e)
{
CString err;
err.Format("%s", (char*)(e.Description()) );
AfxMessageBox(err);
}
catch(...)
{
AfxMessageBox("Unknown Error...");
}
m_pADOSet.CreateInstance(__uuidof(Recordset));
并在文件最后加上如下代码:
bool C***App::ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)
{
if ( ADOSet->State == adStateOpen) ADOSet->Close();
try
{
ADOSet->Open(strSQL, ADOConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);
return true;
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error: %s",(char*)e.Description());
AfxMessageBox(err);
return false;
}
}

最后就可以在登录时执行SQL语句了,比如用户为CString strUser, 密码是CString strPwd;数据库表是user_table(user_id, user_name, user_pwd)则
_variant_t strQuery, Holder;
strQuery = "select * from user_table where user_name='"+strUser +"' and user_pwd='"+ strPwd +"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( 0==iCount )
{
AfxMessageBox(_T("密码错误"), MB_ICONEXCLAMATION);
return;
}
else
{
AfxMessageBox(_T("登录成功"), MB_ICONEXCLAMATION);
}

❻ VC ado连接SQLSERVER2005的字符串有多少种有什么区别

字符串是由SQL
Server自己识别的,所以只要是SQL
Server自己能够识别出来的就可以使用,字符串的内容与ADO无关。

❼ vc++如何利用ADO在连接sql2005(连接字符串的问题)

你把Data Source=B80715E532A142E\SQLEXPRESS 改成Data Source=.\\SQLEXPRESS 看看,我之前连接数据库的错误和你一样,就是这样改的,你先试试吧

❽ ADO连接SQL2005出错[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访

打sp4补丁

❾ ADO.NET与SQL server 2005有什么关系啊

一个是编程一个是数据库,.net用的软件是Microsoft
Visual
Studio
2005自带SQL
server2005一部分软件,就生拉硬扯这点关系,毕竟数据库是数据库,编程是编程,编程不一定非要用sql2005,sql2005也不是只有.net能连接!

❿ vb6用ado能不能连接到SQL2005

能,而且十分方便,在部件里有一个Microsoft ADO Data Control 6.0,把他拖到窗体上,Visible改成false,代码这么写:

Adodc1.Connectionstring="Driver={SQLServer};Server=192.168.1.1;UID=sa;PWD=123456;DataBase=ssss";
Adodc1.RecordSource="Select*from数据"
Adodc1.Refresh