⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 esql-c资料(完全版)四_unix_操作系统_网络学院_天新网.htm

📁 一个sql语句用法的完全手册
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            src="ESQL-C资料(完全版)四_Unix_操作系统_网络学院_天新网.files/search5.gif" border=0> 
          </TD></TR></FORM></TBODY></TABLE></TD>
    <TD background=ESQL-C资料(完全版)四_Unix_操作系统_网络学院_天新网.files/menubg.gif 
      height=25><TABLE cellSpacing=0 cellPadding=0 width="100%" align=center 
      border=0>
        <TBODY>
        <TR>
          <TD align=middle height=2></TD></TR>
        <TR>
          <TD align=middle><SPAN 
    id=ad_search_right></SPAN></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></SPAN>
<TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0>
  <TBODY>
  <TR>
    <TD class=mainbgcolor align=middle height=2></TD></TR></TBODY></TABLE><SPAN 
id=txsite_smallcolumnmenu>
<TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0>
  <TBODY>
  <TR>
    <TD class=mainbgcolor width=6></TD>
    <TD 
    style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; BORDER-BOTTOM: #cccccc 1px solid" 
    vAlign=center bgColor=#666666 height=25>&nbsp; <A 
      href="http://school.21tx.com/os/win9x/"><FONT 
      color=#ffffff>Windows9x</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/win2000/"><FONT 
      color=#ffffff>Win2000</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/winxp/"><FONT 
      color=#ffffff>WindowsXP</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/win2003/"><FONT 
      color=#ffffff>Windows2003</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/longhorn/"><FONT 
      color=#ffffff>Vista</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/dos/"><FONT 
      color=#ffffff>Dos</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/app/"><FONT 
      color=#ffffff>Windows</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/linux/"><FONT 
      color=#ffffff>Linux</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/unix/"><FONT 
      color=#ffcc00>Unix</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/freebsd/"><FONT 
      color=#ffffff>FreeBSD</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/solaris/"><FONT 
      color=#ffffff>Solaris</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/macos/"><FONT 
      color=#ffffff>MaxOS</FONT></A><FONT color=#ffffff> | </FONT><A 
      href="http://school.21tx.com/os/aix/"><FONT 
      color=#ffffff>AIX</FONT></A><FONT color=#ffffff> | </FONT></TD>
    <TD class=mainbgcolor width=6></TD></TR></TBODY></TABLE></SPAN>
<TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0>
  <TBODY>
  <TR>
    <TD class=mainbgcolor width=6></TD>
    <TD style="BORDER-LEFT: #cccccc 1px solid" vAlign=top align=middle 
    bgColor=#ffffff>
      <TABLE cellSpacing=0 cellPadding=0 width="100%">
        <TBODY>
        <TR>
          <TD colSpan=2 height=3></TD></TR>
        <TR>
          <TD width="2%"><IMG height=22 
            src="ESQL-C资料(完全版)四_Unix_操作系统_网络学院_天新网.files/dline.gif" width=19></TD>
          <TD width="98%" 
          background=ESQL-C资料(完全版)四_Unix_操作系统_网络学院_天新网.files/dline02.htm>&nbsp; 
            您现在的位置:<A href="http://www.21tx.com/">天新网</A> &gt; <A 
            href="http://school.21tx.com/">网络学院</A> &gt; <A 
            href="http://school.21tx.com/os/">操作系统</A> &gt; <A 
            href="http://school.21tx.com/os/unix/">Unix</A> </TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=6 width="98%" 
      background=ESQL-C资料(完全版)四_Unix_操作系统_网络学院_天新网.files/data_title_bg.gif 
      border=0>
        <TBODY>
        <TR>
          <TD align=middle><FONT class=f18 
            color=#339900><B>ESQL/C资料(完全版)四</B></FONT></TD></TR>
        <TR>
          <TD align=middle>http://school.21tx.com 2005年03月13日 <FONT 
            color=#a20010></FONT></TD></TR></TBODY></TABLE>
      <P align=center><SPAN id=txsite_ad_cnt_top1></SPAN><SPAN 
      id=txsite_ad_cnt_top2>
      <TABLE cellSpacing=0 cellPadding=0 width=468 align=center border=0>
        <TBODY>
        <TR>
          <TD height=6></TD></TR>
        <TR>
          <TD 
          style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; BORDER-BOTTOM: #cccccc 1px solid" 
          align=middle width=468>
            <SCRIPT type=text/javascript>
var arrBaiduCproConfig=new Array();
arrBaiduCproConfig['uid'] = 111945;
arrBaiduCproConfig['n'] = 'txadcpr';
arrBaiduCproConfig['tm'] = 30;
arrBaiduCproConfig['cm'] = 68;
arrBaiduCproConfig['um'] = 34;
arrBaiduCproConfig['rad'] = 1;
arrBaiduCproConfig['w'] = 468;
arrBaiduCproConfig['h'] = 60;
arrBaiduCproConfig['bd'] = '#ffffff';
arrBaiduCproConfig['bg'] = '#ffffff';
arrBaiduCproConfig['tt'] = '#0000ff';
arrBaiduCproConfig['ct'] = '#000000';
arrBaiduCproConfig['url'] = '#666666';
arrBaiduCproConfig['bdl'] = '#ffffff';
arrBaiduCproConfig['wn'] = 2;
arrBaiduCproConfig['hn'] = 1;
arrBaiduCproConfig['ta'] = 'right';
arrBaiduCproConfig['tl'] = 'bottom';
arrBaiduCproConfig['bu'] = 0;
</SCRIPT>

            <SCRIPT src="ESQL-C资料(完全版)四_Unix_操作系统_网络学院_天新网.files/ui.js" 
            type=text/javascript>
</SCRIPT>

            <SCRIPT type=text/javascript>
<!--
document.write(baiduCproIFrame());
-->
</SCRIPT>
          </TD></TR>
        <TR>
          <TD height=6></TD></TR></TBODY></TABLE></SPAN><SPAN 
      id=txsite_ad_cnt_top3></SPAN></P>
      <TABLE id=txsite_content cellSpacing=0 cellPadding=0 width="98%" 
        border=0><TBODY>
        <TR>
          <TD class=content><SPAN id=txsite_ad_cnt_start></SPAN>
            <P class=line-height><BR>5.3 
            嵌入SQL的处理过程<BR>INFORMIX的预编译器为esql。嵌入SQL包含一些组件:嵌入SQL的库文件,提供访问数据库<A 
            href="http://www.21tx.com/server/" 
            target=_blank>服务器</A>、操作各种数据类型、出错信息的处理等函数。嵌入SQL的头文件(<A 
            href="http://school.21tx.com/os/unix/" 
            target=_blank>Unix</A>环境:$INFORMIXDIR/incl/esql下,<A 
            href="http://school.21tx.com/os/windows/" 
            target=_blank>Windows</A>环境:%INFORMIXDIR%\incl\esql下),提供程序用的数据结构、常数和宏的定义信息。Esql是预编译器。UNIX系统下,是finderr程序获得INFORMIX的错误信息,WINDOWS平台下是find 
            error获得错误信息。还有一些GLS 
            locale文件,提供一些特定的locale信息。在WINDOWS平台下,还有另外一些文件,如:setnet32、ilogin、regcopy、esqlmf程序。<BR>创建嵌入SQL/C的程序的一般步骤:程序的后缀可以是.ec或.ecp。<BR>1、定义宿主变量。<BR>2、访问数据库。<BR>3、操作。<BR>4、完成后,使用esql命令来预编译。如:esql 
            demo1.ec。在预编译后,程序中只有C语言语句,它们都可以为C语言的编译器所识别。所以,可以按照一般的方法进行编译和连接,但在将SQL语句转换以后,在C语言程序中,又引入了许多一般的C语言系统所没有的结构、变量和函数,因此应该设置INCLUDE和LIB的设置。最后生成的可执行文件。<BR>5.4 
            动态SQL语言<BR>所谓静态SQL的编程方法,就是指在预编译时SQL语句已经基本确定,即访问的表或视图名、访问的列等信息已经确定。但是,有时整个SQL语句要到执行的时候才能确定下来,而且SQL语句所访问的对象也要到执行时才能确定。这就需要通过动态SQL语句完成。动态SQL语句的处理步骤是:<BR>1、组合SQL语句。<BR>2、PREPARE。PREPARE语句是动态SQL语句独有的语句。其语法为:<BR>PREPARE 
            语句名 FROM 
            宿主变量|字符串<BR>该语句接收含有SQL语句串的宿主变量,并把该语句送到DBMS。DBMS编译语句并生成执行计划。在语句串中包含一个“?”表明参数,当执行语句时,DBMS需要参数来替代这些“?”。PREPRARE执行的结果是,DBMS用语句名标志编译后的语句。在执行SQL语句时,EXECUTE语句后面是这个语句名。请看下面这个例子:<BR>EXEC 
            SQL prepare slct_id from <BR>'select company from customer where 
            customer_num = 
            ?';<BR>可以通过SQLCA检查PREPARE操作是否成功。<BR>3、EXECUTE或OPEN。<BR>EXECUTE语句的语法如下:<BR>EXECUTE 
            语句名 USING 宿主变量 | DESCRIPTOR 
            描述符名<BR>它的作用是,请求DBMS执行PREPARE语句准备好的语句。当要执行的动态语句中包含一个或多个参数标志时,在EXECUTE语句必须为每一个参数提供值。这样的话,EXECUTE语句用宿主变量值逐一代替准备语句中的参数标志(“?”),从而,为动态执行语句提供了输入值。<BR>如果是多行查询,则使用游标,使用OPEN 
            USING语句传递参数;如果是单行查询,则使用SELECT INTO。如果是修改数据:则使用EXECUTE 
            USING语句。如果知道参数个数,就可以使用宿主变量。如果不知道参数个数,则必须使用DESCRIBE语句。下表总结了动态SQL语句的处理方法:<BR>语句类型是否有输入参数执行的方法<BR>INSERT、DELETE、UPDATE没有EXECUTE<BR>INSERT、DELETE、UPDATE有(数据类型和个数确定)EXECUTE 
            …USING<BR>INSERT、DELETE、UPDATE有(数据类型和个数不确定)EXECUTE...USINGSQL 
            DESCRIPTOR或EXECUTE...USINGDESCRIPTOR<BR>SELECT(返回多行)无OPEN<BR>SELECT(返回多行)有(数据类型和个数确定)OPEN…USING<BR>SELECT(返回多行)有(数据类型和个数不确定)OPEN...USINGSQL 
            DESCRIPTOR或OPEN...USINGDESCRIPTOR<BR>SELECT(返回一行)无EXECUTE...INTO<BR>SELECT(返回一行,但是返回的数据类型和个数不确定)无EXECUTE...INTODESCRIPTOR或EXECUTE...INTOSQL 
            DESCRIPTOR<BR>SELECT(返回一行)有EXECUTE...INTO...USING<BR>SELECT(返回一行,但是返回的数据类型和个数不确定)有EXECUTE...INTO...USING 
            SQLDESCRIPTOR或EXECUTE...INTO...USINGDESCRIPTOR 
            <P>4、释放资源。<BR>5.4.1 
            SQLDA<BR>可以通过SQLDA为嵌入SQL语句提供输入数据和从嵌入SQ语句中输出数据。理解SQLDA的结构是理解动态SQL的关键。<BR>我们知道,动态SQL语句在编译时可能不知道有多少列信息。在嵌入SQL语句中,这些不确定的数据是通过SQLDA完成的。SQLDA的结构非常灵活,在该结构的固定部分,指明了多少列等信息(如下图中的sqld=2,表示为两列信息),在该结构的后面,有一个可变长的结构(SQLVAR结构),说明每列的信息。<BR>
            <P>SQLDA结构<BR>Sqld=2<BR>sqlvar<BR>Desc_name<BR>Desc_occ<BR>Desc_next 

            <P><BR><BR>Sqltype=500<BR>Sqllen<BR>sqldata<BR>…..<BR><BR>Sqltype=501<BR>Sqllen<BR>Sqldata<BR>….. 

            <P>图6-6 SQLDA结构示例<BR>具体SQLDA的结构在sqlda.h中定义,是:<BR>struct 
            sqlvar_struct<BR>{<BR>short sqltype;/* variable type*/<BR>short 
            sqllen;/* length in bytes*/<BR>char *sqldata;/* pointer to 
            data*/<BR>short *sqlind;/* pointer to indicator*/<BR>char 
            *sqlname;/* variable name*/<BR>char *sqlformat;/* reserved for 
            future use */<BR>short sqlitype;/* ind variable type*/<BR>short 
            sqlilen;/* ind length in bytes*/<BR>char *sqlidata;/* ind data 
            pointer*/<BR>}; 
            <P>struct sqlda<BR>{<BR>short sqld;<BR>struct sqlvar_struct 
            *sqlvar;<BR>char desc_name[19];/* descriptor name */<BR>short 
            desc_occ;/* size of sqlda structure */<BR>struct sqlda *desc_next;/* 
            pointer to next sqlda struct */<BR>}; 
            <P>#endif /* _SQLDA 
            */<BR>从上面这个定义看出,SQLDA是一种由三个不同部分组成的可变长数据结构。位于SQLDA开端的sqldaid用于标志该SQLDA描述了多少列的信息;而后是一个或多个sqlvar结构 
            ,用于标志列数据。当用SQLDA把参数送到执行语句时,每一个参数都是一个sqlvar结构;当用SQLDA返回输出列信息时,每一列都是一个sqlvar结构。第三部分是SQLDA结构的描述信息部分。具体每个元素的含义为:<BR>lSqld。目前使用的sqlvar结构的个数。即输出列的个数。<BR>lSqlvar。指向sqlvar_struct结构。 
            即指向描述第一列信息的sqlvar结构。<BR>lDesc_name。Sqlda的名称。<BR>lDesc_occ。Sqlda结构的大小。<BR>lDesc_next。指向下一个SQLDA结构。<BR>lSqltype。代表参数或列的数据类型。它是一个整数数据类型代码。具体每个整数的含义见第二节。<BR>l 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -