c连接数据库
‘壹’ c连接oracle数据库的连接语句
我只会在unix下面写,嘿嘿win的我还不会呢。。
把代码贴上。至于怎么
编译,再查查吧~
int
main()
{
EXEC
sql
BEGIN
DECLARE
SECTION;
char
oc_passwd[101];
/*数据库密码*/
char
oc_userid[101];
/*数据库用户名*/
char
oc_dbname[101];
/*数据库名*/
char
oc_coad[101];
EXEC
SQL
END
DECLARE
SECTION;
memset(oc_passwd,
0x00,
sizeof(oc_passwd));
memset(oc_userid,
0x00,
sizeof(oc_userid));
memset(oc_dbname,
0x00,
sizeof(oc_dbname));
/*取数据库用户名*/
strcpy(oc_userid,
"userid");
/*取数据库用户密码*/
strcpy(oc_passwd,
"passwd")
;
/*取数据库名*/
strcpy(oc_dbname,
"dbname");
EXEC
SQL
CONNECT
:oc_userid
IDENTIFIED
BY
:oc_passwd
USING
:oc_dbname;
if
(sqlca.sqlcode
!=
0)
{
printf("用户名[%s]密码[%s]数据库[%s]\n",
oc_userid,
oc_passwd,
oc_dbname);
printf("连接数据库失败,sqlcode=%d\n",
sqlca.sqlcode);
return
-1;
}
/*读table取coad字段*/
memset(oc_coad,
0x00,
sizeof(oc_coad));
EXEC
SQL
SELECT
coad
INTO
:oc_coad
FROM
table
WHERE
1=1;
if
(sqlca.sqlcode
==
NORECORD)
{
printf("查询无记录\n");
return
-1;
}
else
if
(sqlca.sqlcode
!=
0)
{
printf("查询失败,sqlcode=%d\n",
sqlca.sqlcode);
return
-1;
}
return
0;
}
‘贰’ C++如何连接数据库 用什么方式最好
1、在stdafx.h文件最后(即#endif // _AFX_NO_AFXCMN_SUPPORT下面)添加:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2、初始化COM:
AfxOleInit();//这行代码要放在功能执行前,如果是基于对话框建立的程序,那就放在第一个对话框类的OnInitDialog()函数的return TRUE;前
3、在用到数据库的地方:
_ConnectionPtr m_pConnection;///声明数据库连接变量
_RecordsetPtr m_pRecordset;///声明数据库集合变量
CString strCn;
strCn.Empty();
(1)连接数据库
HRESULT hr;
try
{
_variant_t RecordsAffected;
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("DSN=test;UID=;PWD=;","","",adModeUnknown);///连接数据库
}
}
catch( _com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
(2)通过SQL读数据
CString sql;
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error e)///捕捉异常
{
CString errorMessage = e.ErrorMessage();
AfxMessageBox("读取数据时出错:"+sql+errorMessage);///显示错误信息
}
(3)通过sql语句添加、修改、删除记录
_variant_t RecordsAffected;
try
{
m_pConnection->Execute((_bstr_t)Sql,&RecordsAffected,adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
‘叁’ c语言怎么连接mysql数据库
如鹏网上有详细的视频教程,杨中科的C语言也能干大事,里面讲得很清楚。要是在这里讲需要写很多东西,累手,还没有视频直观
‘肆’ c语言怎样连接数据库
别胡思乱想了,你都用了微软的sql server了,用api吧
除非你用sqlite3,用c接口还情有可原
徐珲冠郊普芦姓祠止巩郎准赞四茕鄞昶下奘君船
‘伍’ C++或C程序如何与数据库建立连接
一般要看使用的数据库。如果
操作
sql
server
需要用到
ado
驱动,这种驱动使用mfc做的包装类比较多一些,在控制台直接编写代码可能稍显繁琐。
如果操作mysql,在安装mysql的时候,有相应的include头文件和库文件,可以在自己的ide开发环境中进行设置。
‘陆’ 如何用C语言连接MYSQL数据库
1、配置ODBC数据源。
2、使用SQL函数进行连接。
对于1、配置数据源,配置完以后就可以编程操作数据库了。
对于2、使用SQL函数进行连接,参考代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
void main()
{
HENV henv; //环境句柄
HDBC hdbc; //数据源句柄
HSTMT hstmt; //执行语句句柄
unsigned char datasource[]="数据源名称"; //即源中设置的源名称
unsigned char user[]= "用户名"; //数据库的帐户名
unsigned char pwd[]= "密码"; //数据库的密码
unsigned char search[]="select xm from stu where xh=0";
SQLRETURN retcode; //记录各SQL函数的返回情况
// 分配环境句柄
retcode= SQLAllocEnv(&henv); // 等介于 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL
, &henv);
// 设置ODBC环境版本号为3.0
retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 分配连接句柄
retcode= SQLAllocConnect(henv,&hdbc); // 等介于 SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
//设置连接属性,登录超时为*rgbValue秒(可以没有)
// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);
//直接连接数据源
// 如果是windows身份验证,第二、三参数可以是
‘柒’ c语言怎么连接mysql数据库 代码
//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路径
//在工程设置-》链接》库模块中添加 libmysql.lib
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <winsock.h>
#include "E:\wamp\bin\mysql\mysql5.5.8\include\mysql.h"
void main(){
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server ="localhost";
char *user ="root";
char *password="";
char *database="test";
char sql[1024]="select * from chinaren";
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0)){
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
if(mysql_query(conn,sql)){
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
res=mysql_use_result(conn);
while((row = mysql_fetch_row(res))!=NULL){
printf("%s\n",row[2]);
}
mysql_free_result(res);
mysql_close(conn);
}
===============================
#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译
#include <windows.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
//定义数据库操作的宏,也可以不定义留着后面直接写进代码
#define SELECT_QUERY "show tables;"
int main(int argc, char **argv) //char **argv 相当于 char *argv[]
{
MYSQL mysql,*handle; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *result; //查询结果集,结构类型
MYSQL_FIELD *field ; //包含字段信息的结构
MYSQL_ROW row ; //存放一行查询结果的字符串数组
char querysql[160]; //存放查询sql语句字符串
//初始化
mysql_init(&mysql);
//连接数据库
if (!(handle = mysql_real_connect(&mysql,"localhost","user","pwd","dbname",0,NULL,0))) {
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql));
}
sprintf(querysql,SELECT_QUERY,atoi(argv[1]));
//查询数据库
if(mysql_query(handle,querysql)) {
fprintf(stderr,"Query failed (%s)\n",mysql_error(handle));
}
//存储结果集
if (!(result=mysql_store_result(handle))) {
fprintf(stderr,"Couldn't get result from %s\n", mysql_error(handle));
}
printf("number of fields returned: %d\n",mysql_num_fields(result));
//读取结果集的内容
while (row = mysql_fetch_row(result)) {
printf("table: %s\n",(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0]) ) ;
}
//释放结果集
mysql_free_result(result);
//关闭数据库连接
mysql_close(handle);
system("PAUSE");
//为了兼容大部分的编译器加入此行
return 0;
}
‘捌’ c语言如何和数据库连接
C函数库没有相应的数据库连接接口函数。
只能够尝试用二进制或文本模式读写文件,来模拟相应的数据库操作等。
可以尝试下C++库类,里面有数据库连接的接口
‘玖’ c/c++怎么连接数据库,并执行SQL语句
C++连接SQL数据库第一步 系统配置
1.设置SQLSERVER服务器为SQL登录方式,并且系统安全性中的sa用户要设置登录功能为“启用”,还有必须要有密码。
2.需要在ODBC中进行数据源配置,数据源选\”SQL SERVER”,登录方式使用“使用输入用户登录ID和密码的SQL SERVER验证”,并填写登录名(sa)和密码,注意一点,密码不能为空,这就意味着你的sa用户必须得有密码。否则无法通过系统本身的安全策略。测试通过就完成了配置。
C++连接SQL数据库第二步 C++与SQL连接初始化
1.在你所建立的C++项目中的stdafx.h头文件中引入ADO
具体代码如下
#import “c:\Program Files\Common Files\System\ado\msado15.dll”
no_namespace rename(”EOF”, “adoEOF”) rename(”BOF”, “adoBOF”)
2.定义_ConnectionPtr变量后调用Connection对象的Open方法建立与服务器的连接。
数据类型_ConnectionPtr实际上是由类模板_com_ptr_t得到的一个具体的实例类。_ConnectionPtr类封装了Connection对象的Idispatch接口指针及其一些必要的操作。可以通过这个指针操纵Connection对象。
例如连接SQLServer数据库,代码如下:
//连接到MS SQL Server
//初始化指针
_ConnectionPtr pMyConnect = NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return;
//初始化链接参数
_bstr_t strConnect = “Provider=SQLOLEDB;
Server=hch;
Database=mytest;
uid=sa; pwd=sa;”; //Database指你系统中的数据库
//执行连接
try
{
// Open方法连接字串必须四BSTR或者_bstr_t类型
pMyConnect->Open(strConnect, “”, “”, NULL);
}
catch(_com_error &e)
{
MessageBox(e.Description(), “警告”, MB_OK|MB_ICONINFORMATION);
}//发生链接错误
C++连接SQL数据库第三步 简单的数据连接
//定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
//初始化过程 以下是个实例
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
//执行操作
try
{
pRecordset->Open(_variant_t(”userinfo”),
_variant_t((IDispatch*)pMyConnect),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
MessageBox(”无法打开userinfo表\”, “系统提示”,
MB_OK|MB_ICONINFORMATION);
}
C++连接SQL数据库第四步 执行SQL语句
这里是关键,我认为只要你懂点SQL语句那么一切都会方便许多比用上面的方法简单,更有效率点。
首先
m_pConnection.CreateInstance(_uuidof(Connection));
//初始化Connection指针
m_pRecordset.CreateInstance(__uuidof(Recordset));
//初始化Recordset指针
CString strSql=”select * from tb_goods”;//具体执行的SQL语句
m_pRecordset=m_pConnection->Execute(_bstr_t(strSql),
NULL, adCmdText);//将查询数据导入m_pRecordset数据容器
至此 你的SQL语句已经执行完成了m_pRecordset内的数据就是你执行的结果。
取得记录:
while(!m_pRecordset->adoEOF)//遍历并读取name列的记录并输出
{
CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem
(”name”)->Value;
AfxMessageBox(temp);
pRecordset->MoveNext();
}
插入记录
//记得初始化指针再执行以下操作
CString strsql;
strsql.Format(”insert into tb_goods(no,name, price)
values(’%d’,'%s’, %d)”,m_intNo,m_strName,m_intPrice);
m_pRecordset=m_pConnection->
Execute(_bstr_t(strsql),NULL,adCmdText);
修改记录
CString strsql;
strsql.Format(”update tb_goods set name=’%s’ ,
price=%d where no=%d “,m_strName,m_intPrice,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText);
删除记录
CString strsql;
strsql.Format(”delete from tb_goodswhere no= ‘%d’ “,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText)
‘拾’ 用c语言怎么连接数据库呢
c语言当然可以连接数据库了。看你是想要连接什么数据库呢?各种数据库都有很多相应的函数实现了。看你想要使用什么技术了,比如说ado,odbc,,等等都可以连接数据库。