當前位置:首頁 » 數據倉庫 » vc動態創建資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

vc動態創建資料庫

發布時間: 2022-12-14 23:28:09

Ⅰ 怎麼在VC++中用ADO創建資料庫

VC++中使用ADO方式操作ACCESS資料庫是Microsoft資料庫應用程序開發的新介面,是建立在OLEDB之上的高層資料庫訪問技術,即使你對OLEDB,COM不了解也能輕松對付ADO,因為它非常簡單易用,甚至比你以往所接觸的ODBCAPI、DAO、RDO都要容易使用,並不失靈活性。本文詳細地介紹在VisualC++開發環境下如何使用ADO來進行資料庫應用程序開發,並給出示例代碼。為了使讀者朋友都能測試本例提供的代碼,我們採用Access資料庫,您可以直接在我們提供的示例代碼中找到這個test。mdb。程序編譯運行後的效果一所示:
一、實現方法
萬事開頭難,任何一種新技術對於初學者來說最重要的還是"入門",掌握其要點。讓我們來看看ADO資料庫開發的基本流程吧!它的基本步驟如下:
(1)初始化COM庫,引入ADO庫定義文件
(2)用Connection對象連接資料庫
(3)利用建立好的連接,通過Connection、Command對象執行sql命令,或利用Recordset對象取得結果記錄集進行查詢、處理。
(4)使用完畢後關閉連接釋放對象。
下面我們將詳細介紹上述步驟並給出相關代碼。
1、COM庫的初始化
我們可以使用AfxOleInit()來初始化COM庫,這項工作通常在CWinApp::InitInstance()的重載函數中完成,請看如下代碼:
BOOLCADOTest1App::InitInstance()
{
AfxOleInit();
。。。。。。
}
2、用#import指令引入ADO類型庫
為了引入ADO類型庫,需要在項目的stdafx。h文件中加入如下語句:
#import"c:\programfiles\commonfiles\system\ado\msado15。dll"
no_namespacerename("EOF","adoEOF")
這一語句有何作用呢?其最終作用同我們已經十分熟悉的#include類似,編譯的時候系統會為我們生成msado15。tlh,ado15。tli兩個C++頭文件來定義ADO庫。
需要讀者朋友注意的是:您的開發環境中msado15。dll不一定在這個目錄下,請按實際情況修改;在編譯的時候可能會出現如下警告,對此微軟在MSDN中作了說明,並建議我們不要理會這個警告:msado15。tlh(405):warningC4146:,resultstillunsigned。
3、創建Connection對象並連接資料庫
為了首先我們需要添加一個指向Connection對象的指針_ConnectionPtrm_pConnection,下面的代碼演示了如何創建Connection對象實例及如何連接資料庫並進行異常捕捉:
BOOLCADOTest1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
HRESULThr;
try
{
hr=m_pConnection。CreateInstance("ADODB。Connection");///創建Connection對象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft。Jet。OLEDB。4。0;
DataSource=test。mdb","","",adModeUnknown);///連接資料庫
//上面一句中連接字串中的Provider是針對ACCESS2000環境的,對於ACCESS97,
//需要改為:Provider=Microsoft。Jet。OLEDB。3。51;
}
}
catch(_com_errore)///捕捉異常
{
CStringerrormessage;
errormessage。Format("連接資料庫失敗!\r\n錯誤信息:%s",e。ErrorMessage());
AfxMessageBox(errormessage);///顯示錯誤信息
}
在這段代碼中我們是通過Connection對象的Open方法來進行連接資料庫的,下面是該方法的原型:
HRESULTConnection15::Open(_bstr_tConnectionString,_bstr_tUserID,_bstr_tPassword,longOptions);
上述函數中參數ConnectionString為連接字串;參數UserID是用戶名;參數Password是登陸密碼;參數Options是連接選項,用於指定Connection對象對數據的更新許可權,一般情況下Options可以是如下幾個常量:
adModeUnknown:預設。當前的許可權未設置

Ⅱ 如何在VC\VB中建立和使用資料庫

C,C++,JAVA,再就是VC,VC++,VB,VF都是干什麼的啊,還有就是VB.NET等,請詳道來
這些都是用於程序設計的
C語言以一種比較基本的面向過程語言,比較低級。C++和Java則是面向對象的語言,Java相對C++會高級一些。這里所謂的高級低級不是說這個語言本身的優劣,而是說它們所關心的層面里用戶的遠近,離得遠則低級,離得近則高級。
VC、VC++全稱Visual C++,是微軟出品的C++編譯器軟體及其相應的類庫,可以用於Windows下C++程序設計及軟體開發,一般用於開發系統軟體,應用軟體及游戲等。
VB全稱Visual Basic,是微軟出品的Basic編譯器軟體及其相應的類庫,可以用於Windows下軟體開發,可以用於編寫應用軟體、游戲等。
VF全稱Visual FoxPro,資料庫編程系統,也是微軟的產品。
VB.NET就是Visual Basic .NET,是微軟推出.NET戰略後的Visual Basic產品,用其所寫程序一般運行於.NET平台上,可以用來製作網站和編寫軟體。
關於這些軟體的詳細情況,lz可以搜索網路的相應詞條,那裡面都很詳細。
如果樓主想學習編程,不必要把這些都學了,如果有一項你能精通,那都是很不得了的事!我是說 精通!都學的話,人的精力有限,不可能都精通,每個都學個皮毛,一點用處都沒有,只能騙騙5歲以下的小孩:)。
給你講講我的學習經歷,當初我沒學C,直接學的C++,當然學習周期很長,而且比較枯燥,但堅持下來就好了。現在我工作中以C++和Java為主,C偶爾使用。其實回了一種語言,其他的語言相對就比較容易了,因為它們長得都很像。
我建議lz從Java或C#開始(只要學一種啊,不要貪多,不然浪費時間),先買一本書或找些教程,把java/C#的語法學好,每本書裡面肯定會涉及到一些類庫方面的東西,可以適當看看。在學習java/C#的時候,面向對象的思想的建立我覺得是最關鍵的。當然,剛剛開始可能會有些弄不明白為什麼這么寫的地方,這些地方先不要管,照書上先抄下來去運行,隨著後面的學習這些問題你會逐步清楚的。
我個人覺得java的學習過程要比c容易一些,而且效果會好些。畢竟c的學習基本是以語法為主,但c的程序基本上就是黑屏上面幾個白字的狀態,不利於初學者建立學習興趣和成就感,比較容易堅持不下去。java/C#這方面則強得多。

Ⅲ 如何動態創建資料庫表

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("資料庫url","帳號","密碼");
state=conn.createStatement();
state.executeUpdate("create 建表語句");
state.executeUpdate("insert 插入數據")------>插入的值由頁面獲得,注意字元串拼接。
然後就是關閉連接,state.close();conn.close();
核心代碼就是這些,具體應用你可以多寫幾個方法(增刪改查),都是類似的,注意異常的處理,關閉連接最好在finally中進行。

Ⅳ VC 動態創建資料庫為什麼不能鏈接輸入數據

http://database.51cto.com/art/200509/3585.htm 看這個鏈接,你就明白啦

Ⅳ 在VC中創建Mysql資料庫

Driver={SQL Server};Server=主機名;Database=資料庫名;Uid=sa;Pwd=sa;

還有一個比較簡單方法確定連接字元串:
1.建立一個.udl的文件。
2.雙擊打開,將裡面相關項進行設置,保存,關閉。
3.有記事本打開這個udl文件,裡面的字元串就是連接字元串!

Ⅵ VC++中可否建立資料庫,如果可以該如何建立

VC連接資料庫 可以使用 odbc,ado,等 先給個odbc sdk的連接方式你 實用與VC控制台, MFC ,C等

#include <windows.h>
#include <iostream>
//////////////////////////////////////////////////////////////////////////
// how to use odbc access database
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// step 1: include header file
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
typedef SQLHand SQLHENV //SQL環境
SQLHDBC //ODBC連接
SQLHSTMT //sql語句
//add files to project odbc32.lib
#pragma comment(lib,"WS2_32.lib")
//////////////////////////////////////////////////////////////////////////

void main()
{
//////////////////////////////////////////////////////////////////////////
// variable definition:
//////////////////////////////////////////////////////////////////////////
SQLHENV henv=NULL; //SQL環境
SQLHDBC hdbc=NULL; //ODBC連接
SQLHSTMT hstmt=NULL; //SQL語句
SQLRETURN rc; //SQL執行結果
//////////////////////////////////////////////////////////////////////////
// ::SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv)))//設置環境
// if (SQL_SUCCESS == (rc = ::SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_INTEGER)))
// {
// if (SQL_SUCCESS == (rc =
// ::SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc)))

rc=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if (rc==SQL_SUCCESS) {
if(SQL_SUCCESS== (rc=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER) SQL_OV_ODBC3,SQL_IS_INTEGER)))
rc=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
rc=SQLConnect(hdbc, (SQLCHAR *)"sql", SQL_NTS, (SQLCHAR *)"sa", SQL_NTS, (SQLCHAR *)"sa", SQL_NTS);
// rc=SQLConnect(hdbc,(SQLCHAR *) "sql",SQL_NTS,(SQLCHAR *) "sa",SQL_NTS,(SQLCHAR * )"sa",SQL_NTS);
rc=SQLAllocHandle(SQL_HANDLE_STMT, hdbc,&hstmt);
LPCSTR szSQL="INSERT INTO Employees (LastName, FirstName) VALUES (N'222', N'333')";
SQLPrepare(hstmt,(SQLCHAR *) szSQL,SQL_NTS);
rc=SQLExecute(hstmt);
char szName[20];
SDWORD sd;
int PERSON_INFO =20;
//SQLBindCol(hstmt,0,SQL_C_CHAR, szName,30,&sd);
rc=SQLBindCol(hstmt,1,SQL_C_CHAR,szName,PERSON_INFO,&sd);//綁定欄位
rc=SQLFetch(hstmt);//取出 szName就是你需要的資料庫欄位 每次sqlfetch() 資料庫查詢返回下一行的欄位值
std::cout<<szName<<std::endl;

SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
hdbc=NULL;
SQLFreeHandle(SQL_HANDLE_ENV,henv);
henv=NULL;
}

}