当前位置: 首页 > news >正文

C语言中嵌入式SQL语句

实验内容

掌握SQL Server 2000的预编译程序NSQLPREP.EXE的使用(以课本例题1进行调试);

实验步骤

一、数据库环境配置

1、创建xuesheng数据库,建立student表等;

2、关闭sql server 2000服务管理器;

3、将devtools文件夹拷贝到:C:\Program Files\Microsoft SQL Server

4、将Binn文件夹拷贝到:C:\Program Files\Microsoft SQL Server\MSSQL

5、启动服务器;

二、VC++6.0编辑器配置(初始化Vc++环境)

1.工具—>选择—>目录—>Include Files

添加: C:\Program Files\Microsoft SQL Server\devtools\include

并设为第一项

2.选择Library Files

添加:C:\Program Files\Microsoft SQL Server\devtools\x86lib

并设为第一项

三、写程序,预编译,最后在VC++中编译、执行

1、编辑EXEC.sqc文件,保存到:C:\Program Files\Microsoft SQL Server\MSSQL\Binn目录

EXEC.sqc文件如下:

// EXEC.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <stdlib.h>


EXEC SQL BEGIN DECLARE SECTION; /*主变量说明开始*/
char deptname[64];
char HSno[64];
char HSname[64];
char HSsex[64];
int HSage;
intNEWAGE;
long SQLCODE;
EXEC SQL END DECLARE SECTION; /*主变量说明结束*/

EXEC SQL INCLUDE sqlca; /*定义SQL通信区*/

/*************************************************************************/

int main(void) /*C语言主程序开始*/
{
int count = 0;
char yn; /*变量yn代表yes或no*/
printf("Please choose the department name(CS/MA/IS): ");
scanf("%s", deptname); /*为主变量deptname赋值*/
EXEC SQL CONNECT TO demin USER
sa; /*连接数据库TEST*/
EXEC SQL DECLARE SX CURSOR FOR /*定义游标*/
SELECT Sno, Sname, Ssex, Sage /*SX对应语句的执行结果*/
FROM Student
WHERE SDept = :deptname;
EXEC SQL OPEN SX; /*打开游标SX便指向查询结果的第一行*/

for ( ; ; ) /*用循环结构逐条处理结果集中的记录*/
{
EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex,:HSage;
/*推进游标,将当前数据放入主变量*/
if (sqlca->sqlcode != 0) /* sqlcode != 0,表示操作不成功*/
break; /*利用SQLCA中的状态信息决定何时退出循环*/
if(count++ == 0) /*如果是第一行的话,先打出行头*/
printf("\n%-10s %-20s %-10s %-10s\n", "Sno", "Sname", "Ssex", "Sage");
printf("%-10s %-20s %-10s %-10d\n", HSno, HSname, HSsex, HSage);
/*打印查询结果*/
printf("UPDATE AGE(y/n)?"); /*询问用户是否要更新该学生的年龄*/
do{
scanf("%c",&yn);
}
while(yn != 'N' && yn != 'n' && yn != 'Y' && yn != 'y');
if (yn == 'y' || yn == 'Y') /*如果选择更新操作*/
{
printf("INPUT NEW AGE:");
scanf("%d",&NEWAGE); /*用户输入新年龄到主变量中*/
EXEC SQL UPDATE Student /*嵌入式SQL*/
SET Sage = :NEWAGE
WHERE CURRENT OF SX ;
} /*对当前游标指向的学生年龄进行更新*/
}

EXEC SQL CLOSE SX; /*关闭游标SX不再和查询结果对应*/
EXEC SQL COMMIT WORK; /*提交更新*/
EXEC SQL DISCONNECT TEST; /*断开数据库连接*/
}

<shapetype id="_x0000_t202" path="m,l,21600r21600,l21600,xe" o:spt="202" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><path o:connecttype="rect" gradientshapeok="t"></path></shapetype>2、使用MS-DOS进行预编译:

1)进到Binn文件下:cd C:\Program Files\Microsoft SQL Server\MSSQL\Binn

2)调用预编译程序nsqlprep.exe程序:nsqlprep EXEC

成功编译完成结果:

见附件1

3、使用Vc++进行编译,见附件2

4、添加库文件:工程—>设置—>Link—>对象/库模块

输入SQLakw32.lib Caw32.lib两个文件名。附件3
注意,两个文件之间用空格分开。
5 、将动态链接库SQLakw32.dll,sqlaiw32.dll文件拷贝到操作系统目录下的子目录C:\WINDOWS\system32中

6、连接:附件4

7、执行:附件5

附件1:

附件2(VC编译EXEC.C)

附件3(配置添加库文件)

附件4(连接)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • php编译成二进制文件_基础为零?如何将 C++ 编译成 WebAssembly
  • 履带机器人运动控制器c++_PAL Robotics借助磁编码器技术实现机器人运动平衡
  • css 背景图怎么设置自动填充满_几种常见的CSS布局,新手一定要学学
  • 关于存储过程的一些tips
  • python判断文件读取结束_python中readline判断文件读取结束的方法
  • Memory Notification: Library Cache Object loaded into SGA
  • 加密机工作原理_观健电解水机工作原理是什么 电解水机工作原理【介绍】
  • ORA-02064: 不支持分布式操作
  • 无监督学习与有监督学习的本质区别是什么_监督学习 vs 无监督学习
  • wxpython使用_python图形界面开发之wxPython树控件使用方法详解
  • 无线开发,你凭什么吸引VC?
  • python画玫瑰图_python之windrose风向玫瑰图的用法-Go语言中文社区
  • 61A与PC的RS232通信,接收以中断方式
  • python怎么除去列表l中所有是x的元素_清华毕业大佬整理的Python基础22大知识点,自备热水,这货有点干...
  • 拥有至高无上的特权 使用system账户
  • .pyc 想到的一些问题
  • 《深入 React 技术栈》
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 【知识碎片】第三方登录弹窗效果
  • bootstrap创建登录注册页面
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Docker下部署自己的LNMP工作环境
  • Fundebug计费标准解释:事件数是如何定义的?
  • in typeof instanceof ===这些运算符有什么作用
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • IP路由与转发
  • JavaScript中的对象个人分享
  • jquery ajax学习笔记
  • Promise面试题,控制异步流程
  • Spring Cloud Feign的两种使用姿势
  • vue:响应原理
  • yii2权限控制rbac之rule详细讲解
  • 闭包,sync使用细节
  • 从0实现一个tiny react(三)生命周期
  • 动态规划入门(以爬楼梯为例)
  • 官方解决所有 npm 全局安装权限问题
  • 前端自动化解决方案
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 如何在 Tornado 中实现 Middleware
  • 数据结构java版之冒泡排序及优化
  • 学习笔记:对象,原型和继承(1)
  • 用 Swift 编写面向协议的视图
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​决定德拉瓦州地区版图的关键历史事件
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • !!java web学习笔记(一到五)
  • #define,static,const,三种常量的区别
  • $(selector).each()和$.each()的区别
  • (2022 CVPR) Unbiased Teacher v2
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (C语言)逆序输出字符串
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)