informix-4gl常用的定義變數 的基本資料型別;
char decimal smallint integer
smallfloat float date money serial
decimal 小數型別 decimal(6,2) 2位小數 共6位
decimal(6) 浮動小數點的資料型別 有效位為6位。絕對值在 10(-128)到10(126)之間
decimal 預設為 decimal(16)
smallint 短整型 -32767 到 +32767 2 個位元組
integer 整數型別 4個位元組
smallfloat 單精度浮點型 相當於 c語言中的float 資料型別,佔4個位元組
float 雙精度浮點型 8個位元組
date 預設月日 年
money(m,n) m 有效數字位數 n 小數點後數字位數。 預設n 隱含n=2.預設m,隱含m=16
::序列型 serial 取正整數 佔4個位元組最大值 2147483647 自動賦值,不能修改.依次遞增 從1開始. serial(100) 100 開始.
::記錄型資料結構
define rd01 record
x,y,z
integer
end record
define rd02 record
name
char(8),
age
smallint,
wage
smallfloat
end record
-------------------------
display "***語言關係資料庫系統" at 10,10
message "***語言關係資料庫系統"
error "***語言關係資料庫系統"
程式的除錯執行
$ fglpc prg1 $ fglpc prg1.4gl
fglpc編譯原始檔(.4gl) |- 成功 -> p-**檔案(.4go) -> fglgo 執行
|- 失敗 -> 錯誤資訊檔案(.err)
------------------------
fglpc md1
fglpc md2
fglpc md3
cat md1.4go md2.4go md3.4go > md.4gi
fglgo md
----------------------------
########資料庫管理#########################
資料庫訪問許可權(3種): connect rescource dba
database dbn
grant connect to user1
grant resource to user1,user2
grant connect to public #所有使用者
撤銷許可權:
revoke resource from user1
revoke dba from user1,user2
表訪問許可權(7種): select insert update delete index alter all
grant select on tbn to public
grant select(a1,a2) on tbn to user1,user2
grant alter on tbn to user1
with grant option
授權同時可傳遞
資料庫結構修改:
drop table xx
rename table tbn to ntbn
重新命名表
close database dbn
drop database dbn
# 刪除資料庫之前先關閉
let x="dbn" drop database x
刪除資料庫
rename column tbn.a1 to b1
修改列名
alter table tbn add(a1 char(4),a2 integer)
增加列名
alter table tbn add(b1 smallint before a3)
增加乙個新列b1,位於tbn中原有列a3之前
alter table tbn drop(a1,a2)
alter table tbn modify(a1 char(8),a2 integer)
修改列的資料型別
create view vn4(c1,c2,c3)
as select tb1.a1,tb1.a2,tb2.a1 from tb1,tb2
where tb1.a2=tb2.a2
create view vnx(b1,b2,b3,b4,b5,b6)
as select c1,c3,sum(c2),max(c2),min(c2),count(*)
from vn4
where c2<2000
drop view vnx
檢視:不能含order by 子句; 不能含union操作符; 不能含程式變數
資料庫日誌檔案
create database dbn with log in "usr/swc/logf"
start database dbn withlog in "usr/swc/logf"
建立歷史檔案
begin work
事務開始
commit work
rollback work
檢查全程變數sqlca 獲知該語句執行的成敗
預定義的常量
true=1
false=0
notfound=100
exit program # 立即終止程式的執行
return
# 終止函式的執行
c語言程式的編譯
cfglgo fgiusr.c cfunf.c -o newfglgo 生成可執行檔案newfglgo
rdsql
1資料定義 2資料操縱 3許可權控制 4游標操作 5資料封鎖控制 6動態語句管理
1create database
database
close database
drop database
create table
alter table
rename table
drop table
create view
drop view
create synonym [create synonym x for mytable 建立同義名x.對x的訪問就是對mytable 的訪問]
drop synonym
rename column
create index
alter index
drop index
update statistics [for table t] --更新系統表 表t中當前所含有的資料行數記錄到系統表 systables 上
create index idx22 on t(a1)
alter index idx22 to cluster 物理上按照a1的公升序儲存表t中的資料行.
alter index idx22 to not cluster
== create cluster index idx22 on t(a1)
2.insert select update delete
3.grant revoke
4.對select語句選出的多個資料行進行處理
declare -- foreach -- open -- fetch -- close
向表中插入資料行的過程'
declare -- open -- flush -- close
declare mc22 cursor for insert into t(a1,a2) values (x,y)
全程變數 status 和 sqlca.sqlerrd[3] 可判斷操作的成敗.
3種情況:
1)status = 0 sqlca.sqlerrd[3] = 0 --rdsql成功地把資料行存放到記憶體緩衝區,但沒有插入到磁碟上的表中
2)status = 0 sqlca.sqlerrd[3] = 已插入的行數 --rdsql成功把記憶體緩衝區中所有資料行組成的資料塊插入到磁碟上的表中
3)status < 0 sqlca.sqlerrd[3] = 已成功插入的行數 --rdsql在欲把記憶體緩衝區中的資料塊寫到磁碟上時,出現異常
5.lock table unlock table set lock mode
6. 管理動態可變語句的語句: prepare execute declare
--臨時表 temp
select .,. from t1 where [條件] into temp tmp_t1
--union all 並操作不把兩張表中重複的行從新的結果表中刪去.
--null 空值-空值不是零,也不是空格,表示未知和不確定.
隱藏列 rowid sqlca.sqlerrd[6]=最後乙個資料行的rowid值
select rowid,* from t1
---------------end--------------------------
INFORMIX字符集相關知識
字符集的基本知識 如果從頭說起,字符集最早的編碼方案來自於ascii,這也是最常見的編碼方式。該方案起源於20世紀60年代初期,最初是美國國會圖書館制定用來作為美國圖書館界書目交換的共同標準,最後完善成為美國的國家標準ascii american standard code for informat...
4gl的內建函式和操作符簡介
4gl的內建函式和操作符簡介 2004 11 06 22 51 25 分類 informix 4gl中有一些有內建函式和操作符,便於在程式設計時使用,下面做一些簡單的介紹 field touched field 如果使用者改變了螢幕中 field 域,它就返回true。get fldbuf fiel...
知識拓展4
1 gdb命令 1 查詢程式源 1 search forward 用來從當前行向前查詢第乙個匹配的字串 2 reverse search 用來從當前行向前查詢第乙個匹配的字串 3 list 行號 顯示指定行前後的 4 list 函式名 顯示函式 5 list 從當前行往後顯示 6 list 從當前行...