转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
UNIX系统下informix自制开发工具构思介绍         ★★★★

UNIX系统下informix自制开发工具构思介绍

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4515 更新时间:2009/4/22 23:21:56
p;  
     ┏━━━━━┓       SQL语句送后台          ┏━━━━━━━━━┓
     ┃          ┃  ────────────→  ┃                  ┃
     ┃  前  台  ┃  ........TCP/IP...........   ┃ 后台(net_server) ┃
     ┃  client  ┃  ←────────────  ┃      server      ┃
     ┗━━━━━┛    查询、更新结果返回前台    ┗━━━━━━━━━┛


                        ------图16-----


查询的核心代码:

Select(int tag, char *command)
{
$char *sel, Str[128];
$short flag;
$date Date;
$long Number, b_count, j;
$long prec;
$long type;
$long scale;
$double money;
$char result[128];
 int ret, offset=0;
 int i=0;
 char fmt[32], Tag;

 if(DisplayFlag) printf("tag=%c\nsql=%s\n", tag, command);
 RetPacket.txcode=SELECT;

 if(tag=='M'){
  //多项查询
  sel=getfield(command, &offset);
  if(strlen(sel)<2) goto EXIT1;
  Tag=sel[0];
  }
  else
  Tag=tag;
 sel=getfield(command, &offset);
 if(tag=='M') ChangeCmd(sel);
 if(strlen(sel)<10) goto EXIT1;

 if((ret=ComposeBrowse(10, sel))<0){
  SqlErrHandle(SQLCODE, SELECT);
  goto EXIT0;
  }
 RetPacket.txcode=SELECT;

 $get descriptor 'browsdesc' :b_count=count;
 if(SQLCODE){
  SqlErrHandle(SQLCODE, SELECT);
  goto EXIT0;
  }

 $fetch BROWSE using sql descriptor 'browsdesc';
 if(SQLCODE){
  strcpy(RetPacket.data, "SELECT ERROR|");
  SqlErrHandle(SQLCODE, SELECT);
  goto EXIT0;
  }

 for(j=1;j<=b_count;j++){
  $get descriptor 'browsdesc' value $j
  $prec=precision, /*money、decimal*/
  $scale=scale,  /*money、decimal*/
  $type=type;
  if(SQLCODE){
   strcpy(RetPacket.data, "SELECT ERROR|");
   SqlErrHandle(SQLCODE, SELECT);
   goto EXIT0;
   }
  switch(type){
  case SQLFLOAT:
  case SQLSMFLOAT:
  case SQLDECIMAL:
  case SQLMONEY:
   if(prec)
   sprintf(fmt, "%s%d.%df\0", "%",prec+1, scale);
   else
   strcpy(fmt, "%f");
   $get descriptor 'browsdesc' value $j
    $money=data;
   sprintf(result, fmt, money);

   if(SQLCODE==DATAISNULL) result[0]=0;
   break;
  default:
   $get descriptor 'browsdesc' value $j
    $result=data;
   }//switch

  DelTailSpace(result);

  if(SQLCODE==DATAISNULL) SQLCODE=0;

  if(SQLCODE){
   strcpy(RetPacket.data, "SELECT ERROR|");
   SqlErrHandle(SQLCODE, SELECT);
   goto EXIT0;
   }

  strcat(RetPacket.data, result);
  strcat(RetPacket.data, "|");
  }//for
 if(DisplayFlag) puts(RetPacket.data);

EXIT0:
 $close BROWSE;
 $free BROWSE;
 $deallocate descriptor 'browsdesc';
EXIT1:
return TRUE;
}

 

 

(一)网络版的作用:
    增强安全性。INFORMIX能访问远程数据库,但须建立对等关系,会造成不安全。
    本版无须建立对等关系,克服了这个弱点。

(二)网络版的用法:
    1. 网络通讯使用TCP/IP协议。
    2. 前、后台程序也可在同台机器上. 
    3. FORM的定制、函数及功能不变.
    4. 链接的程序库: /usr/wform/lib/libnetform.a。
    5. 通讯的配置文件: $HOME/etc/sys.net的内容:

        (1)数据库名:对后台而设
        [Database]
        Database=mobile
        (2)后台机器名:前、后台须一致。/etc/hosts中存在,也可以直接写IP地址。
        [ServerHost]
        ServerHost=save01

        (3)端口号:前、后台须一致。
        [NetForm Tcp Port]
        NetFormTcpPort=8168

        (4)socket超时报警时间(秒),确省值60
 [Socket Read & Write Time Out(s)]
 SocketTimeOut=35

        (5)查询超时报警时间(秒),确省值60, 仅对前台而设。
 [Wgetch Time Out(s)]
 WgetchTimeOut=30

        (6)跟踪标志,仅对前台而设,0屏蔽,1开放。跟踪文件:$HOME/run/trace
 [Trace Flag]
 TraceFlag=0

        (7)connect超时报警时间(秒) 仅对前台而设。
 [Company Server Connect Time Out(s)]
 ConnectTimeOut=8

        (8) fork()服务子进程同时存在的最大数, 仅对后台而设。
 [Max User Number]
 UserNum=10

        (9)显示部分服务程序接受和发送的数据。0屏蔽,1开放
        [Display Server Data Flag]
 DisplayFlag=1


    6. 地址簿文件: $HOME/etc/hosts.equ 设在后台
       记录允许访问数据库的前台机器的IP地址,未记录的机器不能访问。
       设置方法:
  (1)文件中加入all.hosts,对所有的客户开放。
  (2)文件中加入网段地址(如13.7.5),对该网段开放。
  (3)文件中加入完整的客户端IP地址(如12.17.23.76),对该客户机开放。

    7. 服务器的启动:net_server

    8. 服务器的停止:net_server stop

    9. 返回值∶  当sqlcode>-10时是本系统定义,含义如下∶

                 -1 收数据包出错: 如超时。
                 -2 拒绝服务∶    地址簿无本机IP地址
   -4 服务进程超过限定的数目。

 

 

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 


[JAVA开发]Informix J/Foundation  [SyBase]Informix Dynamic Server 中的分布式事务
[MySql]windows系统下jsp+mysql+tomcat的配置  [Sql Server]Informix SQL函数的详细用法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台