当前位置: 首页 > 编程日记 > 正文

在VS下用C语言连接SQLServer2008

在VS下用C语言连接SQLServer2008
原文:在VS下用C语言连接SQLServer2008

step1:启动SQLSERVER服务

step2:打建立数据库test,在test库中建立test表(a varchar(200),b varchar(200))
 step3:建立系统DSN,开始菜单 ->运行 ->odbcad32,
  添加->SQL SERVER Native Client 10.0
 名称:csql,服务器:localhost
 使用用户使用登录ID和密码的SQLSERVER验证,登录ID:sa,密码:pass
  更改默认的数据库为:test
 ...
 测试数据源,测试成功,即DNS添加成功。

-------------------------------------------------------------------

#include <stdio.h>

#include <string.h>   
#include <windows.h>   
#include <sql.h>   
#include <sqlext.h>   
#include <sqltypes.h>   
#include <odbcss.h>   

SQLHENV henv = SQL_NULL_HENV;   
SQLHDBC hdbc1 = SQL_NULL_HDBC;   
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;   

/*
    cpp文件功能说明:
    1.数据库操作中的添加,修改,删除,主要体现在SQL语句上
    2.采用直接执行方式和参数预编译执行方式两种
*/
int main(){   
    char a[200]="bbb";
    char b[200]="200";
    SQLINTEGER   p;
    RETCODE retcode;   
    UCHAR    szDSN[SQL_MAX_DSN_LENGTH+1]   =   "csql",   
            szUID[MAXNAME]   =   "sa",   
            szAuthStr[MAXNAME]   =   "pass";  
    //SQL语句
        //直接SQL语句
    UCHAR    sql[37] = "insert into test values('aaa','100')";
        //预编译SQL语句
    UCHAR    pre_sql[29] = "insert into test values(?,?)";
    //1.连接数据源
        //分配ODBC环境句柄

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

// 告诉ODBC这是一个3.0标准的应用程序  

retcode   =   SQLSetEnvAttr(henv,   SQL_ATTR_ODBC_VERSION,   (SQLPOINTER)SQL_OV_ODBC3,   SQL_IS_INTEGER);   

// 分配连接句柄并建立连接
    retcode   =   SQLAllocHandle(SQL_HANDLE_DBC,   henv,   &hdbc1);   
    retcode   =   SQLConnect(hdbc1,   szDSN,(SWORD)strlen(szDSN),   szUID,(SWORD)strlen(szUID),   szAuthStr,(SWORD)strlen(szAuthStr));    
    //判断连接是否成功
    if   (   (retcode   !=   SQL_SUCCESS)   &&   (retcode   !=   SQL_SUCCESS_WITH_INFO)   )   {     
        printf("连接失败!\n");
    }   else   {   
        //2.创建并执行一条或多条SQL语句
        /*
        1.分配一个语句句柄(statement handle)
        2.创建SQL语句
        3.执行语句
        4.销毁语句
        */
        retcode   =   SQLAllocHandle(SQL_HANDLE_STMT,   hdbc1,   &hstmt1);   
        //第一种方式
        //直接执行
        //添加操作
        //SQLExecDirect (hstmt1,sql,37);
        
        //第二种方式
        //绑定参数方式
        
         p   =   SQL_NTS;
        //1预编译
        SQLPrepare(hstmt1,pre_sql,29); //第三个参数与数组大小相同,而不是数据库列相同
        //2绑定参数值
        SQLBindParameter(hstmt1,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&a,0,&p);
        SQLBindParameter(hstmt1,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,200,0,&b,0,&p);
        //3 执行
        SQLExecute(hstmt1);
        
        printf("操作成功!");
        //释放语句句柄
        SQLCloseCursor (hstmt1);
        SQLFreeHandle (SQL_HANDLE_STMT, hstmt1);
    
    }   
    //3.断开数据源
    /*
     1.断开与数据源的连接.
     2.释放连接句柄.
     3.释放环境句柄(如果不再需要在这个环境中作更多连接)
    */
    SQLDisconnect(hdbc1);    
    SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);   
    SQLFreeHandle(SQL_HANDLE_ENV, henv);   
    system("pause");
    return(0);   
}

-------------------------------------------------------------------------------------------------------------------------------------

注意,表名不能取mh_login,只能login


posted on 2014-12-09 13:19 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4153032.html

相关文章:

canvas.width和canvas.style.width区别以及应用

今天讲的内容是canvas.width和canvas.style.width的区别&#xff0c;在没有做canvas项目之前&#xff0c;其实我是并没有深入了解过这两个属性的&#xff0c;最近在研究canvas项目的自适应问题&#xff0c;尤其是在canvas中置入图片&#xff0c;碰到了图片模糊的问题&#xff0…

vj p1042捕风捉影 题解

原体叙述 题意就是让你找出m,n之间的既是回文数又是素数的数 此题完全可以打表。除打表外&#xff0c;方法如下&#xff1a; 构成法 根据数学知识可知&#xff0c;如果一个回文数为偶数位&#xff0c;则必然能被11整除。 即所找的结果必为奇数位。 这样&#xff0c;大致方法就出…

1090 Highest Price in Supply Chain 需再做

1. 由于用不上结点的数据域&#xff0c;所以可以只用整型向量数组存放每一个结点的子节点下标即可。 2. 涉及到层次&#xff0c;未必用层次遍历&#xff0c;本题用先根遍历&#xff0c;也就是深度优先代码更优雅。 3. 这题创建树未必难&#xff0c;但是题目有一句话必须读懂e…

有关Adobe公司的PostScript语言授权问题

各位大神好&#xff1a; 最近公司打算用PostScript语言开发一款打印机产品&#xff0c;本人现在正对这方面予以了解&#xff0c;但是关于Postscript却一无所知&#xff0c;请问园子里的大神们有没有知道的。 我是想咨询一下有关adobe公司在上世纪80年代公司刚成立的时候所推出的…

INTERSECT/EXCEPT VS. IN/NOT IN

我真是OLD到死&#xff0c;虽然记得以前肯定看到过INTERSECT/EXCEPT这两个关键字&#xff0c;前不久还在羡慕Oracle有/-集合操作符而SQL Server怎么竟然没有。。。现在想想难怪当初微软面试的时候面试官告诉我最好了解一下SQL Server 2005新的函数。。。 下面翻译一下http://ww…

聊聊storm的stream的分流与合并

序 本文主要研究一下storm的stream的分流与合并 实例 Testpublic void testStreamSplitJoin() throws InvalidTopologyException, AuthorizationException, AlreadyAliveException {TopologyBuilder builder new TopologyBuilder();builder.setSpout("sentence-spout&quo…

1106 Lowest Price in Supply Chain

1. 本题和1090 Highest Price in Supply Chain适成对比&#xff0c;都是先构建一棵树&#xff0c;但本题是求最小层数和个数&#xff0c;链接题是求最大层数和个数。在极值更换和个数更新方面&#xff0c;两道题是一样的&#xff0c;但要注意&#xff0c;如果是求最小&#xff…

积极拥抱.NET Core开源社区

潘正磊在上海的Tech Summit 2018 大会上给我们的.NET Core以及开源情况带来了最新信息。 .Net Core 开源后取得了更加快速的发展&#xff0c;目前越活跃用户高达400万人&#xff0c;每月新增开发者45万&#xff0c;在 GitHub 上的月度增长达到15%。目前有来自超过3,700家企业的…

13_文件的操作模式

私有文件访问测试 package cn.itcast.test;import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream;import android.test.AndroidTestCase; import android.util.Log;public class AccessOtherAppPrivateTest extends AndroidTestCase {p…

Vcastr 2.2 flv 网络播放器 参数设置

Vcastr 2.2 flv 网络播放器 参数设置 参数名称参数说明默认值vcastr_file方法2传递影片flv文件地址参数&#xff0c;多个使用|分开空vcastr_title影片标题参数&#xff0c;多个使用|分开&#xff0c;与方法2配合使用空vcastr_xml方法3 传递影片flv文件地址参数&#xff0c;样板…

1094 The Largest Generation

1. 开始测试点1答案错误&#xff0c;上网查了发现是因为用了层次遍历的原因&#xff0c;改成先根遍历&#xff0c;即DFS答案就正确了。启示&#xff1a;BFS不行就试试DFS。 2. 这题也不需要结构体数组&#xff0c;向量数据即可&#xff0c;有几个较为关键的变量 int numOflay…

JS魔法堂:mmDeferred源码剖析

一、前言                             avalon.js的影响力愈发强劲&#xff0c;而作为子模块之一的mmDeferred必然成为异步调用模式学习之旅的又一站呢&#xff01;本文将记录我对mmDeferred的认识&#xff0c;若有纰漏请各位指正&#xff0c;谢谢…

asp vb 插入,更新,删除数据库操作。

记笔记。离开学校&#xff0c;东西都还给老师了&#xff0c;哎。Select Case str Case "insert": sql"select * from ["&tablename&"] where idnull" rs.open sql,conn,1,3 rs.addnew For Each key In request.Form …

第五次作业:四则运算之升级

本次作业要求来源&#xff1a;https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232 我的github地址&#xff1a;https://github.com/yellowjy/study 结对同伴的学号姓名&#xff1a;201606120069 缪国锋 一、基本要求&#xff1a; 生成题目&#xff0c;单个题目最多…

妙用vector:根据第一个不等的元素比较两个序列大小的利器

如下面的代码&#xff0c;可以看到向量容器va和vb的第六个元素是第一个不等的元素&#xff0c;且va[5]>vb[5]&#xff0c;因此输出va>vb时结果应该为1。 int main(){vector<int> va,vb;int a[10] {0,1,2,3,4,6};int b[10] {0,1,2,3,4,5,6,7,8,9};for(int i0;i&l…

四个超好用的优质资源搜索网站,海量优质资源等你发现!

在网上找资源的时候总找不到满意的优质资源&#xff1f;今天小编把办公室大佬珍藏多年的四个超好用优质资源搜索网站分享给你&#xff0c;只要你想找&#xff0c;没有找不到的资源&#xff01;一、学习资料库学习资料库中有大量的免费学习资料&#xff0c;学习资料涵盖多种学科…

sql server 2008 修改sa密码

问题&#xff1a; 当我们用windows本身验证之后需要修改sa密码&#xff0c;出现这样的错误。 解决方案&#xff1a; 转载于:https://www.cnblogs.com/hcfan/p/4164777.html

Sql Server数据库连接Oracle数据库

Select * From opendatasource(MSDAORA, Data SourceAPPDATA;User IDuname;Passwordpwd)..BYERP.MAT_CLASS APPDATA--连接字符串名称 用户.表名 http://www.cnblogs.com/luqingfei/articles/538005.html转载于:https://www.cnblogs.com/hanwater/archive/2009/12/04/1616864.ht…

普通二叉树、二叉查找树、平衡二叉树常见操作汇总

目录 总览表 普通二叉树 二叉查找树 平衡二叉树 总览表 普通二叉树 struct Node{int data;Node* lchild,rchild; };Node* newNode(int v){Node* node new Node;//申请变量的地址空间node->lchild node->rchild NULL;//新建的结点没有左右孩子node->data v;//…

Java IO系列之字节流拷贝文件性能比较

Java IO 字节流基类 InputStream--输入流&#xff0c; OutPutStream--输出流&#xff0c; 输入流用于读&#xff0c;输出流用于写. 字节流默认一次只读取或输出一个字节。 package jonavin.io;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impo…

引用 提高开发水平的几项必备技术

很好的一篇文章!!!&#xff08;偶遇此文&#xff0c;英雄所见略同&#xff01;&#xff09; 本文列出了当今计算机软件开发和应用领域最重要十种关键技术排名&#xff0c;如果你想保证你现在以及未来的几年不失业&#xff0c;那么你最好跟上这些技术的发展。虽然你不必对这十种…

移动磁盘由于IO设备错误,要怎样寻回文件

J盘打不开由于IO设备错误&#xff0c;是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意&#xff0c;这个盘不能格式化&#xff0c;否则数据会进一步损坏。具体的恢复方法看正文 工具/软件&#xff1a;流星数据恢复软件 步骤1&#xff1a;先百度搜索并…

1043 Is It a Binary Search Tree

1. 这是二叉查找树BST那节的习题&#xff0c;要做出来这题&#xff0c;需要具备的基础知识有&#xff1a;BST的创建&#xff0c;涉及函数createBST&#xff0c;insertBST&#xff0c;newNode&#xff0c;二叉树的先序遍历、后序遍历。 2. 需要转过来的弯的有&#xff1a; 给定…

运用比较纯的CSS打造很Web2.0的按钮

警告&#xff1a;如果你在使用IE浏览此文&#xff0c;那么请回避一下吧! 什么&#xff0c;你用的还是IE6&#xff1f;你真奥特曼(推荐你去打小怪兽)&#xff01; 先上图&#xff0c;所谓有图有真相。 如果您觉得图片上这些按钮不够2.0&#xff0c;那没办法&#xff0c;请回避吧…

Elasticsearch 参考指南(脚本)

脚本 脚本模块使你可以使用脚本来评估自定义表达式&#xff0c;例如&#xff0c;你可以使用脚本将“脚本字段”作为搜索请求的一部分返回&#xff0c;或者为查询评估自定义分数。 默认脚本语言是Painless&#xff0c;附加的lang插件使你可以运行用其他语言编写的脚本&#xff0…

eclipse如何卸载adt插件

1、选择 Help Install New Software&#xff1b; 2、在Details 面板中, 点击What is already installed? 链接&#xff1b; 3、在Eclipse Installation Details 对话框中&#xff0c;选择Android DDMS和Android Development Tools &#xff0c;然后点击Uninstall&#xff1b;…

1099 Build A Binary Search Tree

1. 本题给出了树的样子&#xff0c;给出了用来填充的数列&#xff0c;并且告诉是一棵二叉查找树。 2. 先用静态存储的方式将树的框架建立起。然后对数列进行小到大排序&#xff0c;利用BST中序遍历是升序的性质&#xff0c;通过中序遍历将数值填充的树中。 3. 层序输出的时候…

redis4.0.6集群部署(5.0.2版本更新补充)

Redis集群安装4版本需要ruby 5版本不需要ruby就能集群1集群机器分布192.168.1.133 redis1192.168.1.134 redis2192.168.1.135 redis32 免密登录ssh-keygenssh-copy-id 192.168.1.133ssh-copy-id 192.168.1.134ssh-copy-id 192.168.1.1353 关闭防火墙sy…

PHP多图片上传 并检查 加水印 源码

参数说明:$max_file_size : 上传文件大小限制, 单位BYTE$destination_folder : 上传文件路径$watermark : 是否附加水印(1为加水印,其他为不加水印);使用说明:1. 将PHP.INI文件里面的"extensionphp_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;2. 将extension_dir…

C#中的委托和事件 (4)---事件和委托的编译代码

事件和委托的编译代码 这时候&#xff0c;我们不得不注释掉编译错误的行&#xff0c;然后重新进行编译&#xff0c;再借助Reflactor来对 event的声明语句做一探究&#xff0c;看看为什么会发生这样的错误&#xff1a; public event GreetingDelegate MakeGreet; 可以看到&#…