c语言 mysql_bind,C语言连接SQLSERVER数据库

第一步:配置ODBC。在配置ODBC时有用户DSN、系统DSN、和文件DSN三种方法,为了稳妥起见,采用系统DSN。

DSN的名字叫LocalServer,帐号:sa,密码123456

第二步:打开VC,建一个win32 Console Application工程,名字随便都可以;

第三步:新建一个文件,文件名随便都可以;

第四步:拷贝如下代码:

#include

#include

#include

#include

#include

int main()

{

void sqlConnect();

sqlConnect();

getchar();

return 0;

}

void sqlConnect()

{

SQLHENV henv;

SQLHDBC hdbc;

SQLHSTMT hstmt;

SQLRETURN retcode;

UCHAR sql1[79]="select No from Student where

Name='jim'";

retcode=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);

if(retcode==SQL_SUCCESS ||

retcode==SQL_SUCCESS_WITH_INFO)

{

retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);

if(retcode==SQL_SUCCESS ||

retcode==SQL_SUCCESS_WITH_INFO)

{

retcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);

if(retcode==SQL_SUCCESS

|| retcode==SQL_SUCCESS_WITH_INFO)

{

retcode=SQLConnect(hdbc,(SQLCHAR*)"LocalServer",SQL_NTS,(SQLCHAR*)"sa",SQL_NTS,(SQLCHAR*)"123456",SQL_NTS);

if(retcode==SQL_SUCCESS

|| retcode==SQL_SUCCESS_WITH_INFO)

{

retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);

if(retcode==SQL_SUCCESS

|| retcode==SQL_SUCCESS)

{

//绑定参数方式

char

a[20]="Jim";

SQLINTEGER

p=SQL_NTS;

//1.预编译

SQLPrepare(hstmt,sql1,79);//第三个参数与数组大小相同,而不是数据库列相同

//2.绑定参数值

SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&a,0,&p);

SQLExecute(hstmt);

printf("connection

is OK\n");

//SQLExecDirect(hstmt,sql1,79);

char

list[5];

SQLBindCol(hstmt,1,SQL_C_CHAR,list,5,0);

SQLFetch(hstmt);

printf("%s\n",list);

}

SQLDisconnect(hdbc);

}

SQLFreeHandle(SQL_HANDLE_DBC,hdbc);

}

}

}

}

Linux C语言连接 sqlserver数据库

记录一下Linux下使用C语言连接sqlserver的方法. 连接前需要安装freetds. 参考: http://www.cnblogs.com/helloworldtoyou/p/6910075. ...

C语言与sqlserver数据库

原文:C语言与sqlserver数据库 1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作. step1:启动SQLSERVER服务,例 ...

jsp连接sqlServer数据库教程

一.首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar  下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0   下载地址:点击进入 开发IDE工 ...

使用thinkphp连接sqlserver数据库时提示“系统不支持:sqlsrv”

习惯了使用php跟mysql组合,现在接到项目需要调用客户线下的系统软件的数据,具了解,这个软件的数据库是用sqlserver数据库也就是常说的mssql数据库了. 那么我现在需要用PHP连接sqls ...

C语言连接MySql数据库

C语言连接MySql数据库(CodeBlocks) 操作系统:Windows7(32位)编译软件:Code::Blocks 10.05数 据 库:mysql-5.1.62-win32 数据库内的数据: ...

asp.net 连接sqlserver数据库

在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面 ...

SQLServer-----使用jTDS连接SQLServer数据库

一.jTDS一个简短的引论 jTDS100%纯Java实现的JDBC3.0驱动,它用于连接 Microsoft SQL Server(6.5.7.2000,2005,2008 和 2012)和Syba ...

Jmeter连接SqlServer数据库进行压力测试

Jmeter连接SqlServer数据库进行压力测试 前提准备:先安装jdbc驱动 驱动下载链接地址:http://pan.baidu.com/s/1bpDpjSr 密码:v6tn 下载解压之后,讲s ...

Linux centos 7/ubantu下: 用 C 语言连接 MySQL数据库

前言:最近用IPC.socket做ATM.聊天项目,考虑到需要用到数据库,所以总结一下centos.ubantu环境下怎么用C语言操作数据库,例如常见的增删改查等! 一.Centos环境安装mysql ...

随机推荐

python排序之一插入排序

python排序之一插入排序 首先什么是插入排序,个人理解就是拿队列中的一个元素与其之前的元素一一做比较交根据大小换位置的过程好了我们先来看看代码 首先就是一个无序的列表先打印它好让排序后有对比效果, ...

前端工程模块化——以一个php项目为例

实现一个页面功能总是需要 JavaScript.CSS 和 Template 三种语言相互组织,所以我们真正需要的是一种可以将 JavaScript.CSS 和 Template 同时都考虑进去的模块 ...

Mac,WIN下支撑 IPV6的 sftp客户端

transmit 这样的话就可以使用 ipv6了,教育网的优势体现出来了,window下得 支撑 ipv6的sftp客户端 Bitvise SSH 和 WINSCP

第一安装oracle数据库后,需要创建一个用户,给用户解锁并赋予权限

1.第一次安装oracle数据库应该做的事情. 注: 1.安装oracle后需要创建用户,连接数据库,(注意数据库名,还有好像后面的 ":"也有影响) 2.解锁用户, 3.授予新登 ...

hadoop配置项笔记 - streaming

stream.map.input.ignoreKey 作用:是否忽略key,只传递值. 默认值:false 我的设置:按需要更改 stream.map.input.field.separator st ...

[leetcode]28. Implement strStr()实现strStr()

Implement strStr(). Return the index of the first occurrence of needle in haystack, or -1 if needle ...

在vue里面使用iVew框架

iVew框架的文档   https://www.iviewui.com/docs/guide/install 这里使用的是 npm 来安装,在项目下执行下面命令npm install iview -- ...

css 常用的几种垂直居中(包括图片)

我知道现在有非常多的水平垂直居中的写法,我就写一些我自己常用的方法,同时说明一下优缺点

基于C#的机器学习--目录

转载请注明出处:https://www.cnblogs.com/wangzhenyao1994/p/10223666.html 文章发表的另一个地址:https://blog.csdn.net/wyz ...

Mysql索引机制B+Tree

1.问题引入 有一个用户表,为了查询的效率,需要基于id去构建索引.构建索引我们需要考虑两个方面的问题,1个是查询的效率,1个是索引数据的存储问题.该表的记录需要支持百万.千万.甚至上亿的数据量,如果 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mysql_bind结构是在使用MySQL C API进行数据绑定时使用的结构体。它用于将C语言变量与MySQL查询中的绑定参数和结果集进行关联。 mysql_bind结构具有以下成员: 1. buffer:指向数据缓冲区的指针。对于绑定参数,该缓冲区保存待绑定的值;对于结果集,该缓冲区保存查询结果。 2. length:对于绑定参数,length表示待绑定的值的长度;对于结果集,length表示查询结果的长度。 3. is_null:对于绑定参数,is_null指示待绑定的值是否为NULL;对于结果集,is_null指示查询结果是否为NULL。 4. error:表示错误码,用于指示是否出现了错误。 5. type:表示数据类型的枚举值,用于指示待绑定的值的类型。 通过mysql_bind结构,我们可以将C语言变量与待执行的SQL语句中的参数进行绑定,从而实现参数的传递。例如,当我们需要执行一个INSERT语句时,可以通过mysql_bind结构将C语言变量与SQL语句中的参数绑定起来,然后使用mysql_stmt_execute函数来执行SQL语句。 同时,mysql_bind结构也可以用于获取执行SQL查询后的结果集。当执行SELECT语句时,我们可以先通过mysql_stmt_execute函数执行SQL语句,然后通过mysql_bind结构将结果集的列与C语言变量进行绑定,从而获取查询结果。 总之,mysql_bind结构是在使用MySQL C API进行数据绑定时的重要工具,它可以方便地将C语言变量与MySQL查询中的参数和结果集关联起来,从而实现数据的传递和获取。 ### 回答2: mysql_bind结构是用于绑定和存储MySQL查询语句参数和结果的一个数据结构。它是MySQL C API提供的一种方式,用于在和MySQL数据库进行交互的过程中,设置、绑定和获取查询参数和结果。 mysql_bind结构包含了多个成员变量,主要包括:buffer_type、buffer、buffer_length、is_null、length、error等。 buffer_type用于指定参数或结果的数据类型,包括整型、浮点型、字符串等。buffer是用于存储查询参数或结果的内存区域。buffer_length表示存储区域的长度。is_null表示参数或结果是否为空,length表示参数或结果的长度。error用于存储错误信息。 使用mysql_bind结构的过程可以分为几个步骤: 1. 创建mysql_bind结构,设置相应的成员变量,如buffer_type、buffer_length等。 2. 绑定查询参数或结果到mysql_bind结构,可以通过设置buffer成员变量来存储参数,或者设置is_null、length等成员变量来存储结果。 3. 执行查询语句,将mysql_bind结构传递给MySQL函数,以便将参数或结果传递给数据库或从数据库中获取结果。 4. 根据操作的类型(查询参数或结果),可以使用mysql_bind结构中的不同成员变量来获取相应的值或信息。 5. 使用完mysql_bind结构后,需要释放相关资源,如释放内存等。 总的来说,mysql_bind结构提供了一种方便的方式,用于在C语言中操作MySQL数据库的查询参数和结果。通过合理的设置和使用mysql_bind结构,可以实现参数和结果的绑定和存储,并能够方便地与MySQL数据库进行交互。 ### 回答3: mysql_bind结构是MySQL C API中一个用于绑定变量的结构体。它用于将C程序中的变量与预编译语句中的占位符进行绑定,以便在数据库操作中进行参数传递和结果获取。 mysql_bind结构包含以下重要成员: 1. buffer:变量的指针,用于存储绑定的变量值。可以是任何基本数据类型的指针。 2. buffer_type:指定buffer中存储的变量类型。这个值可以是MYSQL_TYPE_*枚举中的一个,如MYSQL_TYPE_LONG、MYSQL_TYPE_DOUBLE等。 3. is_null:一个指针,用于表示变量是否为空。如果变量为空,is_null将设置为一个非零值,否则为0。 4. length:存储变量的长度。对于字符串变量,length将保存字符串的长度;对于数值变量,length将保存0。 5. error:变量的错误码。如果在绑定变量时发生错误,error将设置为一个非零值,否则为0。 通过使用mysql_bind结构,可以方便地将C程序中的变量与预编译语句中的占位符进行绑定。这样,就可以安全地将用户输入传递到数据库中,防止SQL注入攻击。同时,使用绑定变量还可以提高查询性能,减少数据库的解析时间。 例如,可以通过以下代码示例来演示mysql_bind结构的使用: ```c MYSQL_STMT *stmt; MYSQL_BIND bind; int my_var = 10; stmt = mysql_stmt_init(mysql); // 初始化MySQL语句句柄 mysql_stmt_prepare(stmt, "SELECT * FROM table WHERE column = ?", strlen("SELECT * FROM table WHERE column = ?")); // 准备预编译语句 bind.buffer_type = MYSQL_TYPE_LONG; // 绑定的变量类型为整型 bind.buffer = (void *)&my_var; // 绑定的变量为my_var的地址 bind.is_null = 0; // 变量不为空 bind.length = 0; // 变量长度为0 mysql_stmt_bind_param(stmt, &bind); // 绑定变量到预编译语句 mysql_stmt_execute(stmt); // 执行预编译语句 mysql_stmt_close(stmt); // 关闭MySQL语句句柄 ``` 在上面的代码中,我们首先使用mysql_stmt_init函数初始化MySQL语句句柄,然后使用mysql_stmt_prepare准备预编译语句。接下来,使用mysql_stmt_bind_param绑定变量到预编译语句中的占位符。最后,使用mysql_stmt_execute执行语句并关闭语句句柄。 通过使用mysql_bind结构,我们可以方便地将C程序中的变量与预编译语句中的占位符绑定,实现安全的参数传递和结果获取。同时,还可以提高数据库查询性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值