嵌入SQL的C应用程序具体到VC++6.0, SQL Server2000 下调试可分为五步:1、环境初始化;2、预编译;3、编译;4、连接;5、运行。下面就其中重要的的操作方法给以详细说明。
1、环境初始化
        (1) SQL Server2000为其嵌入式SQL提供了一此特殊的接口;默认的安装方式没有安装这此接口;因此,需要把devtools.rar解压到SQLServer的系统日录下(即文件夹devtools中的所有文件);如果操作系统安装在C盘,则SQL Server的系统目录是C:\Program Files\Microsoft SQL Server。(或 在安装Microsoft SQL Server 2000时选择安装Development Tools,为使用嵌入式SQL语言准备必要的头文件和库文件。)
       ( 2)初始化Visual C++ 6.0编译器环境。在命令行方式下运行文件\Microsoft Visual Studio\VC98\Bin\vcvars32.bat。
       (3)初始化SQL Server的预编译环境。在命令行方式下运行文件:\Devtools\samples\esqlc\setenv.bat。
       ( 4) VC++6.0环境配置。具体配置分为如下三步[:
           ①Tools->options->directories->Include Files:添加 C:\Program Files\Microsoft SQL Server\devtools\include。将SQL server自带的用于数据库开发的头文件包含到工程环境中。
          ②Tools->options->directories->Lib Files:添加C:\Program Files\Microsoft SQL Server\devtools\x861ib。将开发用到的包包含到工程中。
           ③project->Settings->Link->Object/Library Modules,添加库文件:SQLakw32.lib, Caw32.lib。这两个文件之间用空格分开。

2、预编译
    C语言编译程序不能识别应用程序中的SQL语句,需要经过预处理程序将其转换成C语句。SQL Server的预处理程序是nsqlprep.exe。 nsqlprep.exe在SQL Server安装日录的MSSQL\Binn下。若SQL Server数据库采用的是默任安装方式,则需要把binn.rar的内容拷贝到指定目录下。

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实现了从数据库服务器hushaobo的数据库pubs中的authors表中读取au_lname为white的人对应的 au_fname 值,并保存到变量first_name 中显示出来。(连接数据库的用户为sa,对应密码为1982)

#include<stdio.h>
void main()
{
EXEC SQL BEGIN DECLARE SECTION;
   char first_name[40];
   char last_name[]="White";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO hushaobo.pubs
   USER sa.1982;
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);
}

在命令行下运行:nsqlprep demo.sqc /SQLACCESS /DB hushaobo.pubs /PASS sa.1982
则生成demo.c,将该文件添加到VC工程中编译即可。

3、编译,连接与运行
      在VC++6.0中创建一个 "WIN32 Console Application"的Proiect,然后将预编译生成的c文件加入Proiect,编译连接即可生成访问SQL Server的可执行程序。 Visual C++ 6.0进行编译连接时需要用到动态链接库SQLakw32.d11与SQLaiw32.d11;尽管这两个文件已经随同binn.rar被拷贝到SQLServer安装目录的MSSQL\Binn文件夹下,但仍然需要把它们的路径加到系统路径变量中,以使得程序运行时能找到它们,具体添加方法如下:
     方法1:把这两个文件拷贝到操作系统目录下的system32子目录中。
     方法2:我的电脑->属性->高级->环境变量->path->编辑,在变量值中加入路径值;新路径与已有路径间用;间隔。

注意调适程序时,文件名中不要包含cursor,否则可能会出错。

转载于:https://www.cnblogs.com/ZJoy/archive/2010/12/24/1916288.html

嵌入式SQL程序的VC+SQL server 2000实现的环境配置相关推荐

  1. python ios开发环境_程序员的macOS系列:Mac开发环境配置

    1.前言 最近在写<程序员的macOS系列>文章,之前写的第一篇 程序员的macOS系列:精选Mac App,大家都希望楼主尽快更新,结果拖到了2个月后,所以今天终于更新啦!其实macOS ...

  2. SQL Server 2000详细安装过程及配置

    说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,虽然现如今SQL Server 2000软件早已经过时了,但仍然有一部分人在使用它,尤 ...

  3. Oracle 9i与MS SQL Server 2000之比较连载五.zz

    http://kb.cnblogs.com/a/1153156 Oracle 9i与MS SQL Server 2000之比较连载五 2008-04-14 18:13 四.Oracle中新的数据库对象 ...

  4. 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL ...

  5. SQL Plus和PL/SQL

    SQL Plus和PL/SQL SQL Plus与PL/SQL简介 交互工具:SQL Plus是 Oracle提供的一种用户接口. 交互语言:PL/SQL则是Oracle的过程化编程语言. 使用SQL ...

  6. 安装SQL SERVER 2000时提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作。...

    安装SQL SERVER 2000时提示:"以前的某个程序安装已在安装计算机上创建挂起的文件操作",原因是安装程序在先前的安装过程中在系统注册表留下某些信息. 解决办法:删除掉如下 ...

  7. 当程序开发人员开始抛弃技术时,是否意味着噩梦的开始?抛弃了SQL Server 2000才发现客户的简单问题真的很难解决...

    这个话题起源于今天面对一个客户的报表问题,用存储过程写的报表语句,跑在SQL Server 2000上面.客户说有一个地方抱错,而自己开发机器这边,死活找不到一个SQL Server 2000,全部都 ...

  8. SQL server 2000安装时提示我”以前的某个程序安装已在安装计算机上创建挂起的文件操作....”...

    在运行窗口输入regedit,打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager中找到PendingFi ...

  9. 使用Microsoft SQL Server 2000全文搜索功能构建Web搜索应用程序 --作者:Andrew B. Cencini...

    [摘要]了解如何充分利用SQL Server 2000的全文搜索功能.本文包含有关实现最大吞吐量和最佳性能的几点提示和技巧. 概述 使用Microsoft© SQL Server 2000的全文搜索功 ...

最新文章

  1. 这个 GitHub Trending 让我在腾讯会议中“换脸成”任何人!来唠唠如何上手
  2. LeetCode之283. Move Zeroes
  3. Linux下axel多线程下载
  4. Java中String为什么是final
  5. 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换(转载)
  6. Cadence Allegro SPB 16.5 完整下载 网盘(含破解)
  7. 微控制器实验计算机组成原理,计算机组成原理(西安理工大学)实验二cpth模型机综合实验——微控制器实验.doc...
  8. c盘瘦身 或者 c盘清理
  9. 近远场转换算法matlab,计算电磁学之FDTD算法的MATLAB语言实现解析.doc
  10. NanoHTTPD接收post数据
  11. matlab 换热器仿真,基于MATLAB的换热器温度控制仿真研究.doc
  12. 第8代CPU i5-8250U 电脑安装核显 Windows 7 x64位驱动
  13. 用户‘Sa’登录失败原因
  14. 多元相关分析与回归分析(转)
  15. Commit cannot be completed since the group has already rebalanced and assign
  16. 【something】简单的平均脸制作
  17. Deltix Round, Autumn 2021 (open for everyone, rated, Div. 1 + Div. 2)
  18. 210 Ruby 方法、类和模块【Rails后端开发训练营】
  19. Desmos图形计算器创建回归方程
  20. 考研数学要背诵的知识点

热门文章

  1. Java B2B2C o2o多用户商城 springcloud架构 (六)分布式配置中心(Spring Cloud Config)
  2. JavaCSV之写CSV文件
  3. C#学习基本概念之属性使用
  4. 作为一个新人,如何学习嵌入式Linux?
  5. mysql用dos窗口即cmd命令登陆mysql
  6. 无线传输层安全协议WTLS安全机制详解
  7. 程序员如何更快的工作之 SQL Server
  8. 【转】算法中时间复杂度概括——o(1)、o(n)、o(logn)、o(nlogn)
  9. 《认知突围》做复杂时代的明白人,读书分享
  10. 《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》——1.2 数字图像处理与机器视觉...