diaofeng23 发表于 2007-05-23 13:44

师兄们,求informix-4gl的能实现查询功能的代码

师兄们,求informix-4gl的能实现查询.添加.删除功能的代码 谢谢了.正在努力学习中.
谁能给我回复发一下.万分感谢

diaofeng23 发表于 2007-05-28 16:42

找到方法了

自己写出来了 拿出来大家分享

   #--ClASS PrpDmain
   #--DESC对数据库的增删改
   #--AUTOER xx


DATABASE db01             --对程序变量的定义

DEFINE pnum LIKE tb01.num,
         pnam LIKE tb01.nam,
      peng LIKE tb01.eng,
      pmat LIKE tb01.mat,
      ppol LIKE tb01.pol,
      ppro LIKE tb01.pro,
      ptal LIKE tb01.tal

MAIN
DEFINE answer CHAR(1),
      ok SMALLINT
LET ok=1
WHILE ok
   MESSAGE "i=插入 q=查询 u=修改 d=删除 e=退出"
PROMPT "请输入一个字符,选择所需操作:" FOR answer
CASE answer
      WHEN 'i'
         CALL f_insert()
      WHEN 'q'
         CALL f_query()
      WHEN 'u'
         CALL f_update()
      WHEN 'd'
         CALL f_delete()
      WHEN 'e'
         LET ok=0
      OTHERWISE
         ERROR"非法操作"
END CASE
END WHILE
END MAIN

FUNCTION f_insert()       --实现插入功能

PROMPT"(插入)请输入考号:" FOR pnum
PROMPT"(插入)请输入姓名:" FOR pnam
PROMPT"(插入)请输入外语成绩:" FOR peng
PROMPT"(插入)请输入数学成绩:" FOR pmat
PROMPT"(插入)请输入政治成绩:" FOR ppol
PROMPT"(插入)请输入专业成绩:" FOR ppro
LET ptal=peng+pmat+ppol+ppro
INSERT INTO tb01
          (num,nam,eng,mat,pol,pro,tal)
VALUES
(pnum,pnam,peng,pmat,ppol,ppro,ptal)
CALL f_dspline()
ERROR "插入操作完成"
END FUNCTION            -- # f_insert()

FUNCTION f_query()         --实现查询功能
PROMPT "(查询)请输入编号:" FOR pnum
SELECT num,nam,eng,mat,pol,pro,tal
    INTO pnum,pnam,peng,pmat,ppol,ppro,ptal
    FROM tb01
WHERE num=pnum
IF status!=NOTFOUND
   THEN
   CALL f_dspline()
ERROR "查询操作完称"
ELSE

LET pnum=" "
LET pnam=" "
LET peng=" "
LET pmat=" "
LET ppol=" "
LET ppro=" "
LET ptal=" "

ERROR "没有找到"
END IF
END FUNCTION                         -- #f_query()

FUNCTION f_update()            -- 实现修改功能
PROMPT"(修改)请输入考号:" FOR pnum
PROMPT"(修改)请输入姓名:" FOR pnam
PROMPT"(修改)请输入外语成绩:" FOR peng

PROMPT"(修改)请输入数学成绩:" FOR pmat

PROMPT"(修改)请输入政治成绩:" FOR ppol

PROMPT"(修改)请输入专业成绩:" FOR ppro



LET ptal=peng+pmat+ppol+ppro
UPDATE tb01
SET (num,nam,eng,mat,pol,pro,tal)=
    (pnum,pnam,peng,pmat,ppol,ppro,ptal)
WHERE num=pnum
CALL f_dspline()
ERROR "修改操作完成"
END FUNCTION                         -- #f_update()

FUNCTION f_delete()             --实现删除功能
PROMPT "(删除)请输入编号:" FOR pnum
DELETE FROM tb01 WHERE num=pnum
LET pnum=" "

LET peng=" "
LET pmat=" "
LET ppol=" "
LET ppro=" "
LET ptal=" "
CALL f_dspline()
ERROR "删除操作完成"
END FUNCTION                  -- #f_delete()


FUNCTION f_dspline()            --屏幕显示位置定义
DISPLAY " " AT 10,20
DISPLAY " " AT 11,20
DISPLAY " " AT 12,20
DISPLAY " " AT 13,20
DISPLAY " " AT 14,20
DISPLAY " " AT 15,20
DISPLAY " " AT 16,20
DISPLAY"编号=",pnumAT 10,20
DISPLAY "姓名=",pnamAT 11,20
DISPLAY "英语成绩=",pengAT 12,20
DISPLAY "数学成绩=",pmatAT 13,20
DISPLAY "政治成绩=",ppolAT 14,20
DISPLAY "专业成绩=",ppro AT 15,20
DISPLAY "总成绩=", ptal AT 16,20
END FUNCTION

diaofeng23 发表于 2007-05-28 16:43

数据库的定义在这里
MAIN
CREATE DATABASE db01
CREATE TABLE tb01
(
num SMALLINT,#学号
nam CHAR(6),   #姓名
eng SMALLFLOAT #英语成绩
mat SMALLFLOAT #数学成绩
pol SMALLFLOAT #政治成绩
pro SMALLFLOAT #专业成绩
tal SMALLFLOAT #总成绩
)
CREATE INDEX tb01idx ON tb01 (num)
GRANT CONNECT TO public
END MAIN

白云 发表于 2007-06-20 10:40

给个邮箱吧!
页: [1]
查看完整版本: 师兄们,求informix-4gl的能实现查询功能的代码