毫无疑问,当今Web程序设计中最吸引人而且最复杂的当然就是web数据库程序了。平心而论,其复杂高深的程度决不是你们可以想象得到的。我们先来看看其中涉及到的几个方面的问题:

1.最基本的html设计

2.CGI程序编写调试

3.网络管理和客户协调

4.数据库编写

5.客户/服务体系程序编写

另外你还得不时地同你的客户进行斗争,以取得他们对你工作的认同。因此编写一个大型WEB数据库,是综合素质的考验。

笔者自问尚不完全具备以上的能力,但有幸曾参加过几个web数据库的开发,算是具备了初步的经验吧。这里给大家分享,也算是感谢各位对这个断断续续的教程的总结吧。

一 数据库选择

从一般情况来看,使用web数据库往往是要解决数据的归纳、索引和维护的问题。我们一般选择最流行的关系型数据库,比如NT下的sql,win95和nt下的Access,NT下的sybase,unix下的msql等等。当然还有Oracle、FileMaker PRO、Paradox等等。这些都是很流行的Sql数据库。Sql给数据管理提供了一个标准而坚实的接口,它对数据库操作饿所有函数必需在数据库语言中实现。这种函数包括:数据对象的创建、插入数据和数据修改等。对于数据量不大的小型数据库,一般使用access。

二 接口程序

虽然我们可以直接编写WEB的CGI接口,但是那是工作量巨大且麻烦异常的工作。为了减轻开发者的负担,数据库程序员为我们编写了许多可以直接使用的接口程序,配合不同的数据库。下面就是一些十分常用的接口程序:

1. DB2WWW

这是一个用于和IBM DB2数据库进行连接的工具。在HTTP服务器中,这种工具将HTML文件和SQL命令作为宏文件存储,然后,DB2WWW在接受到浏览器请求后就处理这些宏文件。

2. dbCGI

这个工具通过在html文件中内置SQL语句来实现和数据库的连接。适用于Progress,Sybase,Oracle,Informix,Ingres和ODBC。下面是一个典型的dbCGI程序代码:

dbCGI test

INFORMIXDIR=/usr/informixdir

SQLEXEC=/usr/informix/sqlturbo

TBCONFIG=tbconfig

% [! 8:

%8d

%]

....

selet *

from customer

order by date,city,zipcode

这个工具通过标签和%转意字符来把sql语句放置在html语句内。

3 Genera

这个是sybase数据库系统的网关。它通过在文本文件中加入特定的语句来和数据库进行连接。

4 WebDBC

以windows NT为平台,可以访问所有对odbc兼容的数据库。

5 A-Xorion

他是一个CGI网关,它可以访问大多数的PC机数据库。它以Windows3.1/95/NT为平台。数据库为Ms Access2.0。

三 编程语言

上面介绍的是一些常用的接口程序,它们需要Server的配合才能正常工作。当然如果是很小的数据库程序,不需要使用如此复杂的数据库接口程序。用C,Perl,VB等等,写成CGI程序,在CGI程序内调用数据库。虽然速度方面不是很快,但绝对是非常简单的。

最后的例子:

最后,我准备以一个例子来结束这个教程。

环境:

这是一个非常简单的WEB应用程序。如果你要运行这个程序,也许你得化些时间来配置自己的系统。在这个例子里,CGI程序由Perl5来编写,后台数据库使用sybase system 10,Sybperl用于建立脚本和数据库之间的通信,用其他的CGI后台数据库接口程序也可以。

CGI程序:

会议登记程序

会议登记系统

please fill out the following form. A registration packet will be sent to you immediatel you.Note that all bolad-facedfields muse be complected.


first name:

Last name:

address 1:

address 2:

city:

State:

Zip:

phone:

Fax:

Email:

Packge:

  • Package A
  • Package B
  • Package C

How did you hear about the conference:

  • Direct Mail
  • Associate
  • Journal
  • Other

Perl脚本:

#!/usr/local/bin/perl

require"cgi-lib.pl";

&ReadParse(* input);

$mc_fname=$input{'c_fname'};

$mc_lname=$input{'c_lname'};

$mc_add1=$input{'c_add1'};

$mc_add2=$input{'c_add2'};

$mc_city=$input{'c_city'};

$mc_state=$input{'c_state'};

$mc_zip=$input{'c_zip'};

$mc_phone=$input{'c_phone'};

$mc_fax=$input{'c_fax'};

$mc_email=$input{'c_email'};

$mc_package=$input{'c_package'};

$mc_ad=$input{'c_ad'};

print &PrintHeader;

if (($mc_fname eq"")||(mc_lname eq "")||(mc_add1  eq "")||($mc_add2  eq "")||(

mc_city eq "")||(mc_state eq "")||(mc_zip  eq "")){

printf ("
");

printf(",strong>Your registration cannot be processed as is.Pleae make sure all the requied fields are filled properly.");

print"

";

print"Pleae use the Backbutton to complete the form./n";

}

else{# data is OK

use Sybase::DBlib;

$dbh=Sybase::DBlib->dblogin('conf_user','123','DB-SERVER','REG');

$dbh->dbuse('conference');

$sqlcmd="insert into reg(c_fname,c_lanme,c_add1,c_add2,c_city,c_state,c_zip, c_phone,c_fax,c_email,c_package,c_ad)";

$sqlcmd=$sqlcmd."values("

$sqlcmd=$sqlcmd.'/"".$mc_fname."/",";

$sqlcmd=$sqlcmd.'/"".$mc_flame."/",";

$sqlcmd=$sqlcmd.'/"".$mc_add1."/",";

$sqlcmd=$sqlcmd.'/"".$mc_add2."/",";

$sqlcmd=$sqlcmd.'/"".$mc_city."/",";

$sqlcmd=$sqlcmd.'/"".$mc_state."/",";

$sqlcmd=$sqlcmd.'/"".$mc_zip."/",";

$sqlcmd=$sqlcmd.'/"".$mc_phone."/",";

$sqlcmd=$sqlcmd.'/"".$mc_fax."/",";

$sqlcmd=$sqlcmd.'/"".$mc_email."/",";

$sqlcmd=$sqlcmd.'/"".$mc_package."/",";

$sqlcmd=$sqlcmd.'/"".$mc_ad."/",";

$sqlcmd=$sqlcmd.'/"".$mc_fax."/",";

$dbh->dbcmd($sqlcmd."/n");

$dbh->dbsqlexec;

print"Thank you.Your registration has been submitted.You should receive you packet shourtly in the mail.";

}

linux cgi转发串口数据库,CGI连接数据库的方法相关推荐

  1. ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法

    ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法(转载) 10小时前 ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法(转载) 分类: ASP.NET| ...

  2. linux cgi c环境配置,Linux下配置nginx支持.cgi | 系统运维

    说明: 操作系统:CentOS 6.x web环境:php+nginx+mysql nginx安装目录:/usr/local/nginx nginx配置文件:/usr/local/nginx/conf ...

  3. C——Linux下的串口编程

    原 C--Linux下的串口编程 2017年06月06日 19:30:50 C_Aya 阅读数:11537 <span class="tags-box artic-tag-box&qu ...

  4. 打开cgi文件的网络服务器,cgi文件怎么打开 .cgi是什么文件 | 帮助信息-动天数据...

    cgi文件怎么打开 .cgi是什么文件 作者:dthost | 时间:2017-12-14 | 分类:未分类 | 18,533 次阅读 cgi格式文件是"公共网关接口脚本"类型文件 ...

  5. linux minicom usb串口

    http://www.cnblogs.com/xiaotlili/archive/2011/08/03/2126081.html linux下查看串口信息 查看串口是否可用,可以对串口发送数据比如对c ...

  6. Linux登入Oracle数据库修改密码

    Linux登入Oracle数据库修改密码 1) ssh到对应服务器ssh root@IP --> password:password 2)切换到Oracle用户下,su - 使用root的环境变 ...

  7. 关于嵌入式linux下的串口通讯问题---回车、换行、缓冲

    嵌入式Linux串口通讯测试问题:   经过实验,从Linux(PC)通过串口向嵌入式Linux开发板发送数据时,串口初始化完毕后遇到回车(0x0d)或换行(0x0a)才开始从串口接收数据,回车或换行 ...

  8. linux之database(数据库)一

    linux之database(数据库) 01: 数据库服务概述 . 构建MySQL服务 . 数据库基本管理 . MySQL数据类型 02: 表结构 . MySQL键值 03: 数据导入导出 . 管理表 ...

  9. 如何在linux中连接sybase数据库

    如何在linux中连接sybase数据库 要在Linux中连接Sybase数据库,需要使用Sybase客户端工具(例如isql或bcp)以及Sybase库文件和驱动程序.以下是一些基本步骤: 1.安装 ...

最新文章

  1. Java学习之注解Annotation实现原理
  2. linux Firefox汉化
  3. Win7安装VC++6.0已知的兼容性问题的解决方法
  4. Object-c学习之路三(@class与#import的区别)
  5. phpnow mysql_使用PHPnow搭建本地PHP环境+创建MySQL数据库 | 倡萌的自留地
  6. C语言学习笔记--位运算
  7. Vue.js最佳实践
  8. led显示屏控制卡接线图解_Led显示屏出现花屏是什么原因
  9. oracle权限不足的报错,Oracle Scott创建视图权限不足解决办法
  10. coreldraw x4如何出血_告诉你如何把cdr转换成适合印刷的pdf
  11. ubuntu中pycharm无法输入汉字
  12. Pyspark:随机森林
  13. html 5拜年贺卡,HTML5+CSS3实现春节贺卡
  14. python 文本替换 速度_python 实现批量替换文本中的某部分内容
  15. Fluent 三种初始化使用方法
  16. 现在能否办理5G卡?联通:尚未对公众客户开放办理
  17. 三极管稳压电路仿真分析案例(转)
  18. 这些年我的不足(不够专注,不善于推迟满足感,阅读量不够……-无网不剩 http://t.cn/zOe1RPz)
  19. 三角形外心坐标的计算公式
  20. 关于华为,一次不做评价的陈述

热门文章

  1. 索赔 100 万!只是因为一个开源插件?
  2. 扬言要干掉 RESTful API 的 GraphQL 是什么鬼?
  3. 真实版删库跑路,宕机36小时市值蒸发9亿!
  4. ajax返回头部页面,ajax getResponseHeader获取中文响应头
  5. 【mysql】mysql的数据库主从2(双主双从)
  6. 微信小程序设置文本左对齐居中对齐右对齐setTextAlign的使用说明
  7. ResNet超强变体:京东AI新开源的计算机视觉模块
  8. python等间隔取样
  9. python边缘检测
  10. 安卓摄像头 data 转bitmap