当前位置:首页 » 编程语言 » mfcsqlado

mfcsqlado

发布时间: 2022-09-13 19:01:03

Ⅰ MFC中使用ADO操作sql数据库,一个小问题请求各位帮忙 在线等!!

INSERT语句写法如下:
CString strSQL;
strSQL.Format("InSert InTo DepB(m_Depld,m_DepName,m_Userld)Values(%d,'%s',%d)",m_Depld,m_DepName,m_Userld);
//其中DepB后面的三个m_开头的要对应到数据库中的字段名。

Ⅱ MFC用ADO连接SQL Server不联网单机编写的程序,怎么拷给其他机器

.mdf是sqlserver的数据库文件,你要把它附加到sqlserver之后通过oledb的provider用ado连接才行

Ⅲ MFC 使用ADO读取sqlserver2000数据库 还能使用ADO 操作excel吗

把excel当做数据库,做个连接就可以操作了
如用ado方法:在delphi中加入adoconnection控件,双击后选择jet 4.0 ole db,在连接页中
选择数据库的名字(.xls),再双击全部(all)页中的Extended Properties,在value中
填入Excel 8.0,OK!
在控件ADODataSet1的CommandText属性中选择了select * from Sheet1$后,别忘了在
Sheet1$的两边加上中括号[],否则出现“FROM子句语法错误”。或者用ADOQuery1控件:在
它的SQL属性中写入:select * from [Sheet1$]。

======================================
送你个实例:
今天刚写个这方面的程序段,贴出来,你做下修改
//open excel
procere TForm1.ConnectClick(Sender: TObject);
var
str,path,xlsName:string;
begin
//connect excel
path:=extractfilepath(application.exename);
OpenDialog1.InitialDir :=path;
OpenDialog1.Filter :='*.xls|*.xls';
if OpenDialog1.Execute then
xlsName :=extractfilename(OpenDialog1.FileName);

str:='Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source= ' + path + xlsName + ';Extended Properties=Excel 8.0;' +
'Persist Security Info=False';
conn.Close;
conn.ConnectionString :=str;
try
conn.Connected :=true;
Adotable1.Close;
Adotable1.TableDirect:=True ;
adotable1.tablename:='sheet1$';
tType.ItemIndex :=-1;
try
adotable1.Open;
dbgrid1.Columns[0].Width :=50;
dbgrid1.Columns[1].Width :=50;
dbgrid1.Columns[2].Width :=50;
dbgrid1.Columns[3].Width :=80;
dbgrid1.Columns[4].Width :=80;
dbgrid1.Columns[5].Width :=200;
except
showmessage('Open Error');
end;
except
self.Caption :='Excel connect error';
exit;
end;

end;

//导入,我使用批处理,adoquery1.locktype->ltBatchOptimistic
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from tablename where 0=1');
ADOQuery1.Open;

ADOTable1.First;
while not ADOTable1.Eof do
begin
ADOQuery1.Append;
ADOQuery1.FieldByName('xx').AsString :=trim(Adotable1.fieldbyname('yy').AsString );
//和上句相同,相应字段数据导入即可
ADOQuery1.Post;
ADOTable1.Next;
end;
ADOQuery1.UpdateBatch();
showmessage('over');

----------------------------
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
INSERT INTO urtable
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')
---------------------------
ADOConnection 指向excel, 用Jet4.0 ,Extended properties设为Excel 8.0
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
--------------------------------------------------
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp\b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')

Ⅳ VC++ MFC ADO连接SQL2008

我之前做项目总结的MFCADO链接数据库

ADO操作SQL
Visual C++提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLE DB、ADO等。
其中ADO技术是基于OLE DB的访问接口,它继承了OLE DB技术的优点,并且,ADO对OLE DB的接口作了封装,定义了ADO对象,使程序开发得到简化,ADO技术属于数据库访问的高层接口。
1.导入相关库文件(一般在StdAfx.h中导入)
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename("EOF","adoEOF")
在#ifdef _UNICODE前面
2.初始化COM库(一般在InitInstance()中初始化)
BOOL CadoconnectionApp::InitInstance()
{
CWinApp::InitInstance();
AfxOleInit();//初始化COM库
AfxEnableControlContainer();
}
3 接口简介
ADO库包含三个基本接口:
__ConnectionPtr接口 创建数据库连接
__CommandPtr接口 执行SQL命令
__RecordsetPtr接口 返回结果集

__ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。用__ConnectionPtr接口返回一个记录集不是一个好的使用方法。

__CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。在使用__CommandPtr接口时,可以利用全局__ConnectionPtr接口,也可以在__CommandPtr接口里直接使用连接串。如果只执行一次或几次数据访问操作,后者是比较好的选择。但如果要频繁访问数据库,并要返回很多记录集,那么,应该使用全局__ConnectionPtr接口创建一个数据连接,然后使用__CommandPtr接口执行存储过程和SQL语句。

__RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同__CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给__RecordsetPtr的connection成员变量,让它自己创建数据连接。如果要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局—ConnectionPtr接口,然后使用__RecordsetPtr执行存储过程和SQL语句。
4.连接数据库
在对话框
public:
_RecordsetPtr m_pRecordset;
_ConnectionPtr m_pConnection;
_CommandPtr m_pCommand;
在类的构造函数中创建:
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pCommand.CreateInstance(__uuidof(Command));

BOOL CADODlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: Add extra initialization here
try
{
m_pConnection->ConnectionTimeout=10;
m_pConnection ->Open("Provider=SQLOLEDB;Data Source= PC-20140312ZLBA;Initial Catalog=CNCDB","dbaccess","dbaccess",adModeUnknown);
///连接数据库
MessageBox( L"连接数据库成功");
}
catch(_com_error e)
{
AfxMessageBox(_T("连接数据库失败!"));
return TRUE;
}
return TRUE; // return TRUE unless you set the focus to a control
}
5.数据库操作
m_pConnection ->Execute("delete from TBL_CONNECTLOGS",NULL,adCmdText);

6.关闭连接
void XXXX::OnDestroy()
{
if(m_pConnection ->State)
{
m_pConnection ->Close();
}
m_pConnection =NULL;
}

补充:连接字符串的模式
一般模式
"Provider=SQLOLEDB;Data Source=服务器;Initial Catalog=数据库;uid=SQL用户名;pwd=SQL密码;"

信任模式
"Provider=SQLOLEDB;Data Source=服务器;Initial Catalog=数据库;Integrated Security=SSPI;"

网络模式
"Provider=SQLOLEDB;Data Source=IP地址,端口;Network Library=DBMSSOCN;Initial Catalog=数据库;UserID=用户名;Password=密码;"

注意看下面这两种写法,其实是一个意思:
m_pConnect->Open("Provider=SQLOLEDB;Data Source=服务器;Initial Catalog=数据库;","sa","123456",-1);
m_pConnect->Open("Provider=SQLOLEDB;Data Source=服务器;Initial Catalog=数据库;uid=sa;pwd=123456;","","",-1);

Ⅳ mfc 应用ado 连接 sql 数据库

教你个连接数据库的方法。首先新建一个txt文件,把他命名为aaa.udl然后双击它配置数据库的连接。配置好连接成功后,将该文件放置程序文件夹内。连接数据库时将你的_bstr_t strConnect = "Provider = SQLOLEDB.1;Password=111;Persist Security Info=True ;User Id=root; Initial Catalog=test; Data Source=localhost;"; 这一句改为:
_bstr_t strConnect ="File Name=EPXLDT.udl";然后再连接试试。
如果还不行,把你的邮箱发给我,我给你发个连接数据库的类。挺好用的

Ⅵ MFC通过ado连接数据库sql2000

教你个连接数据库的方法。首先新建一个txt文件,把他命名为aaa.udl然后双击它配置数据库的连接。配置好连接成功后,将该文件放置程序文件夹内。连接数据库时将你的_bstr_t
strconnect
=
"provider
=
sqloledb.1;password=111;persist
security
info=true
;user
id=root;
initial
catalog=test;
data
source=localhost;";
这一句改为:
_bstr_t
strconnect
="file
name=epxldt.udl";然后再连接试试。
如果还不行,把你的邮箱发给我,我给你发个连接数据库的类。挺好用的

Ⅶ MFC通过ado连接数据库sql2000

看你的需要。如果程序依赖数据库,那就必须先连接。你说的登录,很明显必须先连接,否则后续操作没意义了。

Ⅷ 在线等!!!mfc ADO连接sql server数据库的问题

代码太乱了,看的眼花。
数据库操作:1.建立连接
2.建立结果集(可以执行SQL语句)
ConnectDataBase(strConnect)函数是用来建立一条与数据库相连接的语句
CreateInstance()创建一个实例,即创建一条与数据库的连接
什么时候创建连接?这得根据效率来,如果频繁访问数据,可以DataVisitror构造的时候创建,析构的时候释放连接资源。第二种是使用的时候建立连接,然后断开,再使用的时候也是先连接后断开。

Ⅸ 关于MFC 用ADO连接SQL中_ConnectionPtr 未定义

在stdafx.h中添加如下语句

//导入msado15.dll动态库

#import "C:\Program Files\Common Files\System\ado\msado15.dll" rename_namespace("ADODB") ename("EOF","ADOEof")
using namespace ADODB ; //应用命名空间

Ⅹ MFC 用ADO方式连接SQL SERVER 2008连接不上

""在C语言的作用忘记了?

如果数据库存放位置是本机,建议使用127.0.0.1

否则:如果是公网,则用域名,局域网则用IP

最好是将连接字串写在非EXE里,这样方便发布和修改数据库服务器位置、帐号密码

还有,vc中连通前,你应该在mssql管理器中尝试连接,如果在mssql管理器中都连接不能,则问题不出在VC中

caseDATABASE_MSSQL:		
strcpy_s(data,"Driver={SQLServer};");

strcat_s(data,"Server=");
strcat_s(data,addr);
if(addr[0]!='.')//如果服务器地址使用".",则不能加端口
{
strcat_s(data,",");
strcat_s(data,port);
}
strcat_s(data,";");
strcat_s(data,"UID=");
strcat_s(data,user);
strcat_s(data,";");
strcat_s(data,"PWD=");
strcat_s(data,pwd);
strcat_s(data,";");
if(strlen(database))
{
strcat_s(data,"Database=");
strcat_s(data,database);
strcat_s(data,";");
}
上面是连接字符串生成代码,下面是打开连接的函数
intCAdoDataBase::Open(constchar*data)
{
intret=0;
memset(m_strLogin,0,1024);
strcpy_s(m_strLogin,data);

this->Lock();
do
{
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
ret=m_pConnection->Open((_bstr_t)data,"","",adModeUnknown);
m_bFlag=TRUE;
ret=0;
}
catch(_com_errore)
{
m_bFlag=FALSE;
strcpy_s(m_strErrCode,e.Description());
m_pConnection=NULL;
ret=-1;
}
}while(FALSE);
this->UnLock();
returnret;
}
热点内容
怎么把服务器的ip固定了 发布:2025-01-12 03:55:42 浏览:578
php服务器开发 发布:2025-01-12 03:55:35 浏览:672
软件自制编程 发布:2025-01-12 03:54:00 浏览:534
j2ee和java的区别 发布:2025-01-12 03:42:44 浏览:581
android6小米 发布:2025-01-12 03:38:35 浏览:85
redis与数据库 发布:2025-01-12 03:20:21 浏览:211
怎么升级安卓100 发布:2025-01-12 03:19:37 浏览:516
c语言倒数 发布:2025-01-12 03:14:37 浏览:929
如何免费激活移动电话卡安卓 发布:2025-01-12 03:10:27 浏览:89
2020凯越精英配置什么样 发布:2025-01-12 03:08:02 浏览:685