導航:首頁 > 編程大全 > mfc讀取純真ip資料庫

mfc讀取純真ip資料庫

發布時間:2023-01-21 00:59:15

❶ 如何使用MFC進行資料庫查詢

問題很簡單我給你看看一段代碼你就知道了
try
{
CDatabase db;
db.Open(NULL,false,false,"ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};DBQ=手機進銷存管理資料庫.mdb");
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly,"select * from Input;",CRecordset::readOnly);
CString s;
rs.GetFieldValue("廠商",s);
MessageBox(s);
}
catch (CDBException e)
{
MessageBox(e.m_strError);

❷ mfc如何遠程連接sql資料庫

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" 值設置成1433

5.確保開啟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=name;PWD=pwd");

7.連接coder:

stdafx.h中引用:

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

8. 連接SQL SERVER伺服器,並連接資料庫

if(!AfxOleInit()) //這就是初始化COM庫

{

AfxMessageBox("資料庫初始化出錯!");

}

_ConnectionPtr pCn("ADODB.Connection");

pCn->Open((_bstr_t)"Driver=

{SQL Server};Server=127.0.0.1,1433;Database=carcom;UID=sa;PWD=abc123456","","",adModeUnknown);

❸ MFC關於讀取客戶端IP

listen()監聽
accept()接收鏈接請求
訪問客戶端地址信息結構體client
client.sin_addr中儲存客戶端的ip地址
再轉換格式就行了

❹ MFC從資料庫讀取ASCII的表中讀取數據

改成((LPCTSTR*)_bstr_t(theValue));試一下,
如果還是顯示亂碼,需要用WideCharToMultiByte函數將unicode字元串轉行成multi-byte字元串後,再添加到List控制項

❺ 暑假自己自學了下MFC,現在需要軟體中讀取數據,不如說用軟體讀取一個ACCESS的數據文件

如果你建的是一個mfc項目,那麼在創建向導中有是否連接資料庫這一項的。選擇支持,再點開下面的數據源按鈕,如果是Access2003的話選「Microsoft Jet 4.0 OLE DB Provider」,然後選擇mdb文件的路徑;如果是2007的話,選Microsoft Office 12.0 Datebase Engine OLE DB Provider。就可以了,系統自動回給你添加一個C...Set類和C...SetAccessor類,它們包含了OpenDataSource()等操作資料庫的成員函數,你只需要定義一個對象然後調用函數就可以了。具體代碼如下,你可以參考看看:
//在C..View類里會自動定義對象C...Set* m_pSet;
m_pSet->Requery();
m_pSet->MoveFirst();
while(!m_pSet->IsEOF())
{
strContent = m_pSet->m_number + "\t" + m_pSet->m_name;//舉例,m_pSet是指向Access資料庫的索引指針m_number為欄位成員變數
strContent += "\n";// 加入換行符
fileOutput.WriteString(strContent);
m_pSet->MoveNext();
}

❻ 我也有類似的問題需要請教:用MFC進行資料庫的一些操作處理。新手,真心求助!

inline _RecordsetPtr Connection15::Execute ( _bstr_t CommandText, VARIANT * RecordsAffected, long Options ) {
struct _Recordset * _result = 0;
HRESULT _hr = raw_Execute(CommandText, RecordsAffected, Options, &_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _RecordsetPtr(_result, false);
}
我的出現在這個函數,不知道該怎麼處理

❼ 如何用MFC從MYSQL中讀取數據

//下面的代碼是一個實現C++連接MYSQL資料庫的很好的例子
//這里用了建表,插入,檢索,刪表等常用功能
//我用VC++6.0生成,已經成功連接了。
//在VC++6.0中要想把做一下兩步准備工作才可以。
//(1)Tools->Options->Directories->Include files中添加C:\Program Files\MySQL\MySQL Server 6.0\include
//(2)Tools->Options->Directories->Library files中添加C:\Program Files\MySQL\MySQL Server 6.0\lib\opt
//其實就是將頭文件和庫文件包含進來
//我覺得這個例子寫的很好,再結合自己的試驗,特地介紹給大家!

#include <winsock.h>
#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "libmysql.lib")

//單步執行,不想單步執行就注釋掉
#define STEPBYSTEP

int main() {
cout << "****************************************" << endl;

#ifdef STEPBYSTEP
system("pause");
#endif

//必備的一個數據結構
MYSQL mydata;

//初始化資料庫
if (0 == mysql_library_init(0, NULL, NULL)) {
cout << "mysql_library_init() succeed" << endl;
} else {
cout << "mysql_library_init() failed" << endl;
return -1;
}

#ifdef STEPBYSTEP
system("pause");
#endif

//初始化數據結構
if (NULL != mysql_init(&mydata)) {
cout << "mysql_init() succeed" << endl;
} else {
cout << "mysql_init() failed" << endl;
return -1;
}

#ifdef STEPBYSTEP
system("pause");
#endif

//在連接資料庫之前,設置額外的連接選項
//可以設置的選項很多,這里設置字元集,否則無法處理中文
if (0 == mysql_options(&mydata, MYSQL_SET_CHARSET_NAME, "gbk")) {
cout << "mysql_options() succeed" << endl;
} else {
cout << "mysql_options() failed" << endl;
return -1;
}

#ifdef STEPBYSTEP
system("pause");
#endif

//連接資料庫
if (NULL
!= mysql_real_connect(&mydata, "localhost", "root", "test", "test",
3306, NULL, 0))
//這里的地址,用戶名,密碼,埠可以根據自己本地的情況更改
{
cout << "mysql_real_connect() succeed" << endl;
} else {
cout << "mysql_real_connect() failed" << endl;
return -1;
}

#ifdef STEPBYSTEP
system("pause");
#endif

//sql字元串
string sqlstr;

//創建一個表
sqlstr = "CREATE TABLE IF NOT EXISTS user_info";
sqlstr += "(";
sqlstr +=
"user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
sqlstr +=
"user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
sqlstr +=
"user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
sqlstr += ");";
if (0 == mysql_query(&mydata, sqlstr.c_str())) {
cout << "mysql_query() create table succeed" << endl;
} else {
cout << "mysql_query() create table failed" << endl;
mysql_close(&mydata);
return -1;
}

#ifdef STEPBYSTEP
system("pause");
#endif

//向表中插入數據
sqlstr =
"INSERT INTO user_info(user_name) VALUES('公司名稱'),('一級部門'),('二級部門'),('開發小組'),('姓名');";
if (0 == mysql_query(&mydata, sqlstr.c_str())) {
cout << "mysql_query() insert data succeed" << endl;
} else {
cout << "mysql_query() insert data failed" << endl;
mysql_close(&mydata);
return -1;
}

#ifdef STEPBYSTEP
system("pause");
#endif

//顯示剛才插入的數據
sqlstr = "SELECT user_id,user_name,user_second_sum FROM user_info";
MYSQL_RES *result = NULL;
if (0 == mysql_query(&mydata, sqlstr.c_str())) {
cout << "mysql_query() select data succeed" << endl;

//一次性取得數據集
result = mysql_store_result(&mydata);
//取得並列印行數
int rowcount = mysql_num_rows(result);
cout << "row count: " << rowcount << endl;

//取得並列印各欄位的名稱
unsigned int fieldcount = mysql_num_fields(result);
MYSQL_FIELD *field = NULL;
for (unsigned int i = 0; i < fieldcount; i++) {
field = mysql_fetch_field_direct(result, i);
cout << field->name << "\t\t";
}
cout << endl;

//列印各行
MYSQL_ROW row = NULL;
row = mysql_fetch_row(result);
while (NULL != row) {
for (int i = 0; i < fieldcount; i++) {
cout << row[i] << "\t\t";
}
cout << endl;
row = mysql_fetch_row(result);
}

} else {
cout << "mysql_query() select data failed" << endl;
mysql_close(&mydata);
return -1;
}

#ifdef STEPBYSTEP
system("pause");
#endif

//刪除剛才建的表
sqlstr = "DROP TABLE user_info";
if (0 == mysql_query(&mydata, sqlstr.c_str())) {
cout << "mysql_query() drop table succeed" << endl;
} else {
cout << "mysql_query() drop table failed" << endl;
mysql_close(&mydata);
return -1;
}
mysql_free_result(result);
mysql_close(&mydata);
mysql_server_end();

system("pause");
return 0;
}

❽ VS2010的MFC程序連接資料庫

有很多辦法了 我常用的兩種辦法,一個是用cdatabase類建一個對象,調用成員函數open函數可以連接到數據源了,用crecordset對象將前面的database對象傳給他,然後調用crecordset對象的open函數,可以連接具體表
還有一個辦法初學者好直接用,就是直接創建一個類繼承crecordset對象,然後會提示你連接數據源和默認表,後頭建一個該類對象就可以用他的成員函數直接調用了,用open重新打開某個表,movefirst和movenext,getfieldvalue來取值
你可以去網上下個程序看看

❾ mfc 獲取資料庫的元素,或者變數

如果你已經連接到資料庫的話,獲取變數的方法如下:
在頭文件中定義一個變數:
_RecordsetPtr pRst;
CPP文件中:
pRst.CreateInstance("ADODB.Recordset");
pRst->Open("select *from表名 where 欄位名='"+u+"'",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);//u是變數名
u的類型是_bstr_t 的,凡是變數的都是_bstr_t型的,
這樣搞定之後,if(!pRst->rsEOF)
{
_variant_t p=pRst->GetCollect("表中的欄位名");
}
把值取出,GetCollect("xxx");這個函數的返回值都是_variant_t型的,根據你的需要可以進行轉化
例如:
_bstr_t a=(_bstr_t) p;(p是_variant_t)型的,CString b=(LPCTSTR)a(a是_bstr_t型的),
int c=(long)p(p是_variant_t)型的,_variant_t d=(_variant_t)(long) c(c是int型的);
如果你的數據沒有連接的話:
步驟如下:
用ADO連接SQL資料庫
步驟如下:
1,在頭文件"StdAfx.h"中導入#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF"),記住把這句話放到endif的後面,不然會報錯,這樣處理好之後,編譯後又一個警告,可以忽略
2,在對話框的OnInitDialog()函數中寫上"::CoInitialize(NULL);::AfxOleInit(); 」 在主程序的初始化函數中,它就可以寫一次
3,在對話框類的頭文件中,聲明如下變數:_ConnectionPtr m_pConnection;_RecordsetPtr pRst;
連接資料庫的代碼如下:
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");

if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=資料庫的驅動器名稱;Integrated Security=SSPI;Persist Security Info=False;Data Source=資料庫伺服器名;Initial Catalog=連接的資料庫名; User ID=登陸資料庫的名稱;Password=登陸資料庫的密碼;","","",adModeUnknown);
}
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
」資料庫的驅動器名稱「在控制面板里,以大圖標查看,可以看到一個"ODBC",雙擊打開,在」驅動程序「裡面在最下面有兩個」SQL Server"和「SQL Native Client"如果你是2000的SQL版本,就選」SQL Server"及「Provider=SQL Server"2005的"Provider=SQL Native Client"Data Source=? ,?的值可以是」localhost"也可以是你的資料庫伺服器的名稱,連接資料庫的時候可以看到,復制一下就可以了。

❿ MFC中怎麼在編輯框中輸出從資料庫表中讀取的信息

// txl3.cpp: 定義應用程序的類行為。
//

#include "pch.h"
#include "framework.h"
#include "txl3.h"
#include "txl3Dlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// Ctxl3App

BEGIN_MESSAGE_MAP(Ctxl3App, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()

// Ctxl3App 構造

Ctxl3App::Ctxl3App()
{
// 支持重新啟動管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;

// TODO: 在此處添加構造代碼,
// 將所有重要的初始化放置在 InitInstance 中
}

// 唯一的 Ctxl3App 對象

Ctxl3App theApp;

// Ctxl3App 初始化

BOOL Ctxl3App::InitInstance()
{
// 如果一個運行在 Windows XP 上的應用程序清單指定要
// 使用 ComCtl32.dll 版本 6 或更高版本來啟用可視化方式,
//則需要 InitCommonControlsEx()。 否則,將無法創建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 將它設置為包括所有要在應用程序中使用的
// 公共控制項類。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);

CWinApp::InitInstance();

AfxEnableControlContainer();

// 創建 shell 管理器,以防對話框包含
// 任何 shell 樹視圖控制項或 shell 列表視圖控制項。
CShellManager *pShellManager = new CShellManager;

// 激活「Windows Native」視覺管理器,以便在 MFC 控制項中啟用主題
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));

// 標准初始化
// 如果未使用這些功能並希望減小
// 最終可執行文件的大小,則應移除下列
// 不需要的特定初始化常式
// 更改用於存儲設置的注冊表項
// TODO: 應適當修改該字元串,
// 例如修改為公司或組織名
SetRegistryKey(_T("應用程序向導生成的本地應用程序"));

Ctxl3Dlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置處理何時用
// 「確定」來關閉對話框的代碼
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置處理何時用
// 「取消」來關閉對話框的代碼
}
else if (nResponse == -1)
{
TRACE(traceAppMsg, 0, "警告: 對話框創建失敗,應用程序將意外終止。\n");
TRACE(traceAppMsg, 0, "警告: 如果您在對話框上使用 MFC 控制項,則無法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n");
}

// 刪除上面創建的 shell 管理器。
if (pShellManager != nullptr)
{
delete pShellManager;
}

#if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS)
ControlBarCleanUp();
#endif

// 由於對話框已關閉,所以將返回 FALSE 以便退出應用程序,
// 而不是啟動應用程序的消息泵。
return FALSE;
}

閱讀全文

與mfc讀取純真ip資料庫相關的資料

熱點內容
win1010194190 瀏覽:722
windows文件夾命名 瀏覽:905
博易大師升級文件在哪裡 瀏覽:415
ghost83手動安裝教程 瀏覽:802
谷歌代碼編寫規范 瀏覽:938
pdf掃描文件歪斜怎樣處理 瀏覽:752
電教室網路如何破解 瀏覽:939
jsfunctionthis 瀏覽:16
蕪湖寒假編程培訓是什麼 瀏覽:609
api源碼分享網站 瀏覽:511
小米復制文件找不到 瀏覽:959
什麼是網路層 瀏覽:73
如何利用編程做多文件數據合並 瀏覽:666
java如何用tcp發送16進制協議 瀏覽:975
js獲取當天 瀏覽:637
在什麼網站看戰狼2 瀏覽:881
win7桌面工具欄不見了 瀏覽:346
qq群幾個管理員 瀏覽:598
錄光碟怎麼找不到文件 瀏覽:885
flip5怎麼連app 瀏覽:273

友情鏈接