基于VC和SQL Server的嵌入式SQL编程技术

来源 :电脑迷 | 被引量 : 0次 | 上传用户:kamomoo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要 文章介绍了在VC++ 6.0 中使用嵌入式SQL语言访问Microsoft SQL Server 2000数据库的编程实现方法。
  关键词 嵌入式SQL 预编译程序 动态连接库
  中图分类号:TP312 文献标识码:A
  0 引言
  在通常的运用中,SQL语言是作为独立语言在终端交互方式下使用的,是非过程性的,其大多数语句都是独立执行,与上下文无关,称作自含式语言;而许多事务处理应用都是过程性的,需要根据不同的条件来执行不同的任务,如果把SQL语言嵌入到诸如C语言这样的过程化的编程语言中,程序开发人员就能设计出更加灵活的应用系统,具有SQL语言和高级编程语言的良好特征,它将比单独使用SQL或C语言具有更强的功能和灵活性,这种方式下使用的SQL语言称为嵌入式SQL语言。
  在计算机专业课程《数据库系统概论》中有关于嵌入式SQL语言的内容,其教学手段一般都是理论讲述,教学效果不是十分理想。下面介绍一种在现有条件下都能办到的嵌入式SQL语言实现方法。
  1 在VC中使用嵌入式SQL语言访问Microsoft SQL Server 2000
  1.1 使用嵌入式SQL语言所采用的系统配置
  ①操作系统:Windows 2000 Professional
  ②Microsoft Visual C++ 6.0
  ③Microsoft SQL Server 2000
  在安装Microsoft SQL Server 2000 时要注意选择安装Development Tools,为使用嵌入式SQL语言准备必要的头文件和库文件。
  1.2 编辑嵌入式SQL程序
  使用文本编辑器如记事本编辑嵌入式SQL程序,其存盘文件的扩展名为"sqc"。在嵌入式SQL程序中嵌入的SQL语句以EXEC SQL作为起始标识,语句的结束以";"作为标识。在嵌入的SQL语句中可以使用C语言的程序变量(即主变量),这时主变量名前加冒号(:)作为标志,以区别于字段名。主变量的声明必须包含在"EXEC SQL BEGIN DECLARE SECTION; "和"EXEC SQL END DECLARE SECTION; "之间。以下是一个嵌入式SQL程序demo.sqc:
  #include
  void main()
  {
  EXEC SQL BEGIN DECLARE SECTION;
  char first_name[50];
  char last_name[] = "White";
  EXEC SQL END DECLARE SECTION;
  EXEC SQL CONNECT TO my_server.pubs
  USER my_login.my_password;
  EXEC SQL SELECT au_fname INTO :first_name
  FROM authors WHERE au_lname = :last_name;
  EXEC SQL DISCONNECT ALL;
  printf("first_name: %s\n", first_name);
  }
  此C语言程序中嵌入了SQL语句,用来访问数据库服务器my_server中的数据库pubs,登录名my_login,口令my_password,在表authors中检索姓"White"的作者的名,并存入主变量first_name,然后通过printf函数输出结果。
  1.3 预编译嵌入式SQL程序
  Microsoft SQL Server 2000提供的预编译程序nsqlprep.exe,用于对嵌入式SQL程序进行预编译处理,生成C语言源程序。实际上就是将嵌入式SQL程序中的嵌入式SQL语句替换为对运行时库文件Sqlakw32.dll的函数调用,接着运行时库文件调用动态连接库Ntwdblib.dll通过网络来存取Microsoft SQL Server 2000数据库服务器。
  预编译程序nsqlprep的常用语法为:
  nsqlprep ESQL_File /SQLACCESS /DB server_name.database_name /PASS login.password
  其中ESQL_File是要预编译的嵌入式SQL程序;/SQLACCESS通知nsqlprep 自动地为嵌入式SQL程序中的静态SQL语句创建相应的存储过程;/DB server_name.database_name指明要连接的服务器以及数据库名称;/PASS login.password给出登录名及相应的口令。对于demo.sqc的预编译命令为:
  nsqlprep demo /SQLACCESS /DB my_server.pubs /PASS my_login.my_password
  经预编译处理后即可产生C语言源程序demo.c
  1.4 配置VC++ 6.0 中的Project Settings
  为了编译、连接nsqlprep生成的C语言源程序,需要增加必要的访问路径到VC++ 6.0 的环境设置中:
  ①选择菜单Tools中的菜单项Options
  ②选择Directories标签页
  ③在"Show directories for"下拉框中选择"Include files",增加Microsoft SQL Server 2000 开发所需头文件的路径:C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\Include
  ④在"Show directories for"下拉框中选择"Library files",增加Microsoft SQL Server 2000 开发所需库文件的路径:C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\LIB
  1.5 生成访问Microsoft SQL Server 2000数据库的可执行程序
  在VC++ 6.0 中创建一个"WIN32 Console Application"类型的Project,选择菜单Project中菜单项Add to Project的子项Files,将第三步中生成的C语言源程序demo.c添加到此Project中,然后编译、连接即可生成访问Microsoft SQL Server 2000数据库的可执行程序:demo.exe,运行的输出结果为:Johnson;这与使用交互式查询工具Query Analyzer检索的结果是一致的。至此,一个在VC++ 6.0中使用嵌入式SQL语言访问Microsoft SQL Server 2000数据库的应用已经开发完成。
  2 结束语
  本文探讨了Microsoft SQL Server 2000中的ESQL/C编程,并介绍了在常用编程软件VC++ 6.0 中嵌入式SQL程序设计的实现方法。在嵌入式SQL语言的课堂教学中,使用该方法,获得了良好的教学效果。
其他文献
本文主要介绍了特种设备在启航上东工程中的应用,主要包括:塔式起重机、附着式脚手架、施工升降机、电动吊篮,并全过程阐述特种设备的管理要点,可供相关管理人员参考。
提高电线电缆的防火水平,对保护人民生命及财产安全具有重要意义。本文介绍当前电线电缆的结构与产品分类、燃烧特性,分析电线电缆火灾危险性与起火原因,结合电线电缆在日常防火
通过人防工程施工的特点,以及质监经验实践,加强质量监管,能够提出切实可行的监管措施。应做好审图的工作,工程建设过程中的质量管理行为进行规范,注重对参建单位资质和质量行为的
控制传染源,切断传播途径,保护易感人群是防治重症监护室(NICU)患者院内感染的前提[1].现从护理角度提出有关神经外科重症监护患者院内感染的危险因素与护理对策.
目的 观察充气灌肠对小儿肠套叠诊断和复位治疗的疗效.方法回顾性分析经充气灌肠的134例小儿肠套叠患儿的临床资料.结果本组134例复位成功126例,失败8例.结论掌握适应证,采用术中手法复位、反复充气复位及麻醉后充气复位的方法,充气灌肠复位是治疗小儿肠套叠最有效的手段。
目的了解临床护士对医院临床环境安全的认识程度.方法采用自行设计问卷,对某三级甲等综合医院的426名护士进行调查.结果病房环境对护理安全的影响没有引起护士足够的重视.结
目的:调查医院住院患者退药情况。方法:收集华山医院各科病区2004年8月至11月退药申请单,按退药原因和退药品种进行统计分析。结果:退药原因多见于更改医嘱、患者出院或死亡
目的 探讨Graves病伴或不伴浸润性突眼患者抗甲状腺药物治疗后红细胞内抗氧化酶的变化.方法对该患者经抗甲状腺药物治疗,治疗前和甲状腺功能正常后分别抽血测定红细胞中SOD、CAT、GPx水平.结果与正常对照组相比,Graves病伴或不伴浸润性突眼患者红细胞内抗氧化酶均升高,甲状腺功能恢复正常后,后者抗氧化酶活性也恢复正常,而前者抗氧化酶活性仍高于正常.结论 Graves眼病患者的氧化应激强于无眼病
自1959年Swerdlow[1]首次报道3例腹膜浆液性乳头状癌以来,国外报道陆续增多,国内较少.现报道2例腹膜浆液性乳头状癌误诊为卵巢癌的病例,并结合文献分析其临床病理学特点。
摘 要 文章分析了U盘3病毒的传播原理,总结了常用的U盘病毒防范和清除的方法。  关键词 U盘病毒 防范 写保护  中图分类号:TP393.08 文献标识码:A  用户使用U盘过程中,很容易感染U盘病毒,进而感染电脑主机,出现数据丢失、文件夹隐藏、系统变慢等一系列电脑安全问题。因此了解U盘病毒的原理和基本防范技术,对于保护U盘数据和电脑系统安全是非常有必要和有意义的。  1U盘病毒的传播原理  大