當前位置:首頁 » 編程語言 » 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