说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

开 发 基 于ORACLE7 数 据 库 的 管 理 信 息 系 统-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
开 发 基 于ORACLE7 数 据 库 的 管 理 信 息 系 统-Delphi资料

1 前 言

开 发 高 水 平 的“ 管 理 信 息 系 统”, 选 择 性 能 优 越 的 数 据 库 是 最 重 要 的 一 环, 我 们 经 过 多 方 面 的 调 研 和 分 析, 选 择 了ORACLE7 数 据 库, 成 功 地 开 发 了 本 系 统。 实 践 证 明, 本 系 统 设 计 科 学、 合 理、 运 行 稳 定, 本 文 将 具 体 阐 述 一 下 系 统 中 应 用ORACLE7 数 据 库 的 方 法 和 技 术。

2 系 统 的 开 发、 运 行 环 境

本 系 统 在CLIENT/SERVER 结 构 上 运 行,SERVER 为CDC 4360 小 型 机, 和 快 速FDDI 环 网 相 接, 内 装 有UNIX 操 作 系 统 和ORACLE7 数 据 库, 系 统 总 体 网 络 协 议 为TCP/IP 。

CLIENT 端 为486 以 上 微 机,16M 以 上 内 存, 硬 盘 足 够 大, 通 过HUB、 路 由 器、MODEM 和SERVER 连 接。 开 发、 运 行 平 台 是WIN95, 安 装 了 网 络 软 件ONNET、ORACLE CDE 产 品 SQL*NET V2。 开 发 工 具 是POWERBULDER5.0( 以 下 简 称PB5)、VB4 等。

3 ORACLE7 在 系 统 中 的 各 种 应 用

3.1 一 般 性 的 数 据 管 理

一 般 性 的 数 据 管 理 用 数 据 窗 口 管 理 最 方 便, 可 以 在 数 据 窗 口 中 进 行 表 的 增、 删、 改、 查 询 等 操 作, 下 边 是 一 些 具 体 例 子(PB5):

3 .1 .1 连 通ORACLE 库, 并 将 数 据 装 入 数 据 窗 口:

dw_1.SetTransObject(sqlca)

dw_1.Retrieve()

3 .1 .2 增 加 一 条 记 录

dw_1.InsertRow(dw_1.GetRow( ) + 1)

3 .1 .3 删 除 一 条 记 录( 当 前 记 录)

dw_1.DeleteRow(0)

3 .1 .4 将 数 据 提 交 入 库( 存 盘)

dw_1.Update( )

commit;

3 .1 .5 打 印 数 据 窗 口( 表) 中 的 数 据

dw_1.print()

3 .2 文 字 类 数 据 管 理

3 .2 .1 文 本 入 库 和 查 询

文 本 入 库 和 查 询 可 采 用PB5 的MLE( 多 行 编 辑 器) 作 界 面, 编 辑 完 成 后 存 入ORACLE7 的LONG 字 段 中, 查 询 时 从LONG 字 段 中 取 出, 放 入MLE 中 查 询, 下 边 是 一 个 例 子:

//文本的预处理(以去除文本文件中的回车换行符为例说明)

//将文件读入BLOB型变量

text中fn=fileopen(txtname

streammode!)

if fn< > -1 then

fileread(fn

text)

fileclose(fn)

// 并 转 换 为 文 本

article=string(text)

s=len(article)

for v=1 to s

t=pos(article

char(13)+char(10)

v)

if t >0 then

article=replace(article

t

2

)

else

end if

next

mle_1.text=article

//将处理后的文件c:\bb.txt存盘,

文件中的回车换行符已全部去掉

text1=blob(article)

filname="c:\bb.txt"

fn=fileopen(filname

streammode!

write!

lockwrite!

replace!)

if fn< >-1 then

filewrite(fn

text1)

fileclose(fn)

end if

//文本入库

nr1=blob(mle_1.text)

updateblob gljwj set nr=:nr1 where bh=:pass_parm

and zwrq=:fsj and wjbs=:fl5 using sqlca;

commit;

// 放 入MLE 中 查 询

selectblob nr into :nr1 from gljwj where bh=:pass_parm

and wjbs=:fl5 and zwrq=:fsj using sqlca;

mle_1.text=blob(nr1)

3 .2 .2 从 库 中 重 新 生 成 文 本 文 件filename.txt 并 存 盘

select nr into :filen from fwgs where bh=:bh1

and lwrq=:zwrq1 using sqlca;

fname="c:\filename.txt"

fh=fileopen(fname

streammode!

write!

lockwrite!

replace!)

if fh< >-1 then

filewrite(fh

filen)

fileclose(fh)

end if

3 .3 处 理 图 象 文 件( 大 的 二 进 制 文 件)

图 象 文 件( 一 般 为BMP 位 图 文 件) 是 二 进 制 文 件, 将 其 以 数 据 流 方 式 存 入ORACLE7 的LONG 字 段 中, 查 询 时 从LONG 字 段 中 取 出, 放 入 图 象 框( 如p_1) 中 查 询, 下 边 是 一 个 例 子:

// 将 图 象 文 件 读 入BLOB 型 变 量pict 中

fn=fileopen(picname

streammode!)

if fn< > -1 then

fileread(fn

pict)

fileclose(fn)

// 将 图 象 放 入 图 象 框p_1 内 查 看

setpicture(p_1

pict)

end if

// 将 图 象 存 入 表pic 的LONG 字 段bmpt 中

updateblob pic set bmpt=:pict ;

commit;

较 大 的 图 象 文 件 一 次 不 能 入 库, 可 采 取 分 割 图 形 的 方 式, 分 块 存 入, 因 为LONG 字 段 所 存 放 的 数 据 大 小 一 般 是 没 限 制 的( 可 存 放2G 的 内 容)。

4 开 发 应 用 经 验

4 .1 建 议CLIENT 端 通 过SQL*NET V2 进 行ORACLE 数 据 通 信( 不 用SQL*NET TCP V1 产 品)

因 为 在ORACLE7 推 出 以 后,SQL*NET V1 就 没 有 做 一 些 改 进 工 作, 继 续 支 持 到ORACLE7.2

ORACLE7.3 以 后 的 产 品 将 不 支 持SQL*NET TCP V1, 所 以,ORACLE7 用 户 应 立 即 改 用SQL*NET V2, 不 然 会 影 响 到 库 的 运 行 稳 定 性。

ORACLE CDE2 和Developer 2000 提 供 了CLIENT 端ORACLE 产 品 的 安 装 程 序ORAINST.EXE, 运 行 该 文 件 来 安 装SQL*NET V2, 选 择 的 产 品 有:

a ORACLE TCP/IP ADPTER 2.1.4.1.3

b sql*net 2.1.4.1.4

在WIN95 下

网 络 软 件 产 品(Tcp/IP Vendor) 选 择Microsoft windows NT Tcp/IP 3.1

按 提 示 说 明 装 入 就 可 以 了, 另 外 还 要 做 以 下 工 作:

将SERVER 上 的tnsnames.ora 文 件 复 制 到CLIENT 端c:\orawin\network\admin 目 录 下:

ora7=(DESCRIPTION=

(ADDRESS=

(PROTOCOL=TCP)

(HOST=111.1.1.1)

(PORT=1521)

)

(CONNECT_DATA=(SID=ora7))

)

可 在SQLPLUS 下 键 入 连 接 命 令scott/tiger@ora7 测 试 连 接 情 况。

首 先 要 作 好 这 三 件 工 作:

4 .2 采 取 数 据 加 密 技 术

对 用 户 来 说, 查 询 信 息 是 有 权 限 的, 若 想 查 询 某 项 保 密 数 据, 需 正 确 地 键 入 密 码, 才 能 查 到。 面 对 同 一 台 微 机, 谁 能 正 确 地 键 入 密 码, 谁 就 能 做 查 询, 该 系 统 通 过 自 定 义 一 些 复 杂 的 函 数 运 算 产 生 密 码, 从 表(TABLE) 中 找 不 到 密 码 数 据, 通 过 这 种 精 密 的 设 计 处 理, 达 到 了 数 据 保 密 要 求。 下 边 是 密 码 修 改 和 识 别 的 一 段 程 序(PB5) :

password=sle_1.text

a8=pos(sle_1.text

/

)

if a8 >=1 then

password=left(sle_1.text

a8 - 1)

newpassword=mid(sle_1.text

a8+1

len(sle_1.text) - a8)

end if

select dwbm into :dm from dw where mm=:password;

sle_1.text=""

if sqlca.sqlcode< >0 then

messagebox(" 警 告:"

口 令 错 !

)

pw=pw+1

if pw >=3 then

close(w_bg_main)

end if

else

mm=dm

if a8 >=1 then

a7=messagebox("提示信息"

确定要修改口令吗(y/n)?

information!

YesNo!

2)

if a7=1 then

select dwbm into :a9 from dw where mm=:newpassword;

if sqlca.sqlcode< >100 or newpassword="" then

messagebox(" 提 示 信 息"

新 口 令 错 !

)

goto end1

else

update dw set mm=:newpassword

where mm=:password;

messagebox("请记住新口令"

string(newpassword))

commit;

end if

end if

end if

4 .3 用EXCEL 输 出 精 美 表 格

用VC 或PB5 将ORACLE 库 中 的 数 据 生 成 文 本 或EXCEL 文 件, 再 通 过EXCEL 的 数 据 链 接, 将 对 应 数 据 调 入 事 先 定 义 好 的EXCEL 标 准 输 出 表 中, 按 用 户 的 要 求 输 出。

PB5 生 成EXCEL 格 式 文 件 的SCRIPT 语 句 举 例 如 下:

dw_1.SaveAs("c:\glxx.xls"

excel!

true)

4 .4 正 确 使 用 日 期 型 数 据

在 库 操 作 过 程 中, 若 日 期 变 量 的 值 定 义 错 了, 将 提 示SQL 语 句 出 错 信 息, 错 误 现 象 非 常 隐 蔽, 不 好 察 觉, 这 是 编 程 过 程 中 的 常 见 错 误, 在 此 特 别 强 调 一 下。 举 一 个 例 子:

若 日 期 数 据 为 常 量, 要 按 下 列 格 式 赋 值( 用 一update 语 句 说 明):

update tab set rq='1-Feb-96';

commit;

5 结 束 语

该 系 统 的 开 发 和 应 用, 使 我 们 更 加 体 会 到 了ORACLE 数 据 库 的 优 越 性, 本 系 统 的 开 发 成 功 与 此 是 分 不 开 的, 我 们 将 做 进 一 步 探 索, 用 先 进 的 开 发 工 具 和 升 级 的ORACLE8 开 发 面 向 网 络 的 和 多 媒 体 的“ 管 理 信 息 系 统”。

跨平台开发框架Xamarin 2.0发布 移动新趋势:扁平化设计 vs. 拟物化设计(上篇) 杂谈 App Store 之 HIG 与 Objective-C 为什么苹果三星将主宰智能电视未来? 罗永浩可爱多:Smartisan OS即将发布 春晚 VS. 移动应用:用户注意力统计报告 Twitter发布BootStrap 2.3版本! 面向对象编程从骨子里就有问题——看看名人大家是如何诋毁面向对象的 开发者及团队能从LibreOffice那里学到什么? 8000美元存储135TB数据:打造开源的存储硬件 Bing,每月27亿的有效搜索不及僵尸网络的一半 为什么说Amazon的James Hamilton是“可遇不可求”的? Facebook背后的数据团队 红帽将产品转移到Apache社区 Impala是如何提升3~90倍查询效率的? 云中保障数据安全及完整性必须防范的遗留问题 VMware推出移动性平台:VMware Horizon Suite 移动周报:全球最大校园Hackathon的参赛宝典 Unity3D首届游戏创意设计大赛开始报名 中国日报:向移动新媒体蜕变 C#五子棋程序设计 Mozilla宣布推出Firefox OS 面临四大问题 Ruby 2系列首个稳定版 Ruby 2.0.0-P0发布 微软改进Windows Blue搜索 系统或今夏推出 移动新趋势:扁平化设计 vs. 拟物化设计(下篇) 传奇程序员:Minecraft开发者Notch大神 让沟通更便捷 ConnectYard宣布推出全新的Web API 在Hadoop上运行SQL:程序员需知晓的13种数据工具 怎样用好Eucalyptus? AWS攻势变猛,Rackspace主动降价CDN与云存储 惠普将于下季度推出低功耗的Moonshot服务器 各位大虾 谁能提供视频采集卡的原代码,必须要CB的,300分 在堆(heap)上与在栈(stack)上建立的对象有什么区别? 一个问题,在做元件时怎样建立TdateTimePicker 给大家看看我弟弟给我的信 求助,标题栏为“The police are investigating the robbery-"的是什么程序? 谁能将.CPP文件的代码翻译成DELPHI语言?? 有关于FLASH5.0的问题!!!请各位大吓指点! 一个问题,怎样在PC:PageControl上增加TabSheet1,TabSheet1,TabSheet1…. 标题栏为“The police are investigating the robbery-"的是什么程序? 一个弱弱的问题 一个问题,建立的 FB: TBevel没显示,好象根本没建立一样。 如何在 MDI CLIENT 中添加快捷方式??谢谢!! 55分,如何映射控件中子控件的消息? 如何选择书 关于文献数据库的一个问题-如何把一个字段和一个文件关联起来? 所有喜欢到水园来逛逛,但是从不回帖子或很少回帖子的人进来签到~~~~ 谁来救救我呀,我好惨呀。。。。 如何通过VC编程,随时关闭网络端口 诚寻对嵌入式linux感兴趣的网友 今天临走前,再灌一桶酒! 急!!!哪里可以下载到制作工具栏时用到的位图呀? 太原的在哪能买到程序员杂志 我的qq:10120129 谁找我??? xml 高手帮帮我,为什么我下面的文件,在IE5.0中什么也没有?? 请问高手:在uml类图中如何用关系表示一个实体类和一个接口间的关系。 Cathy进来~~ 请问高手们一个Delphi的一个应该是比较底层的东西。 mimi大酒店正式開業﹗先進來的有分啊﹗ 哪个高手完整地讲讲OpenWith菜单项的调用方法和函数等 关于非模态对话框中使用UpdateData(FALSE)函数的问题,朋友,帮个忙好吗? “记事本”小问题,大逻辑.大虾们,照顾照顾小弟呗. Linux下配置ISDN--期待所有的Linux高手到来?? 我是女生,哈哈 急,怎么样在打印表格时使较长的字段分两行显示,并字体变小。 在VB里做的用户控件为什么在VC不能调用啊! 不服不行(真没辙了)[不够可在加200分] 我的代理怎么了? 寻找能显示CAD图纸的delphi控件 偶要给lastlove(☆☆☆☆☆robin★★★★★)放高利贷了! 哪位做过读取网卡地址的动态链接库? c++builder与sql server 2000的sql语言兼容性问题 为什么TWaitThread的帮助在help里找不到? 有关WIN2K策略的设置? TREEVIEW中如何打印结构树? 急急急!opensheet(w_child,w_main,2,Original!)不好使了?为啥? 100分求教,存储过程的两个问题! 哪位大侠有MPEG数据帧格式的资料,望告之,谢了。 大家出个主意,怎么使这个查询速度最快??? 还有人么?再问个问题:) MM_mimi我走了~~~~~~~~~我好失望~~~~ 一个如图所示的不规则形铁片,其缺口边界是口宽4分米,深2分米(顶点至两端点A,B所在直线的距离)的抛物线的一部分,先要将其缺口边界裁剪为等腰梯形.(1)若保持其缺口宽度不变,求裁剪 如图,已知正方形ABCD边长为1cm,点E在对角线BD上,BE=BC,P是CE上一动点,PF⊥BD,PG⊥BC,PF+PG的值为 解不等式组x-3(x-2)大于等于4 5分之2x-1小于2分之x-1 求解啊 数学大神速度来 这是怎么解出来v的 我写出来的始终是分数形式 i e或者l都约不了 解不等式 (3分之x-2)-(2分之3x+5)大于等于x-(3分之2-x) 数学第15,16题. 数学大神求救格式与方法 3-x分之1+3x小于等于2解不等式 16题, (1-3分之1)乘(1-4分之1)乘(1-5分之1)乘……乘(1-2009分之1)乘2009找规律,巧计算,求算式 同问 不等式组5大于2(1-x)和-三分之一x小于等于三分之二-x的整数解的和是 第15,16题 1/1乘3+1/3乘5+1/5乘7+.1/2007乘2009 求不等式组x小于3(x+1) (2-x/3)+1大于等于x 的整数解 16题 24分之3乘以20等于多少 不等式组9x-a大于等于0 8x-b小于等于o X的整数解是1,2,3.适合的整数a,b的有序数对是(a,b) A17个 B64个 C72个 D81个 数学习题,必好评,15,16 816乘以3约等于多少 解不等式:x+1分之x-3小于或等于3 第15,16两题, 22度16分乘以5等于多少 X和0.8的比等于6分之5和2的比,求X 15、16两题 几乘以几等于28 5和8的比等于40和x的比. 15和16两题 5/6乘以20/15再加上106/100等于几 当x=5时,代数式4x-8/3的值是4,当x=多少时,代数式4x-8/3的值是-1/3 15和16两题谢谢 已知7分之1等于0.142857循环,问:最少从小数点后面第几位开始,到第几位上的数字之和等于2000? 第一个 :当x取何值时,代数式【(5x-2)/8】-x的值比代数式【(x+11)/2】-3的值小1?第二个 :某同学在解方程3a-x=13时,误将-x看做+x,解得x=—2,则原方程的解是多少?第三个 :x=2是关于x的方程7+2 求15,16两题, 已知7分之1=0.142857循环,问:最小从小数点后第几位开始,到第几位上的数字和等于2000 当x为什么数时,代数式0.1x-2/0.2的值比代数式-1/6x+2/3的值大3? 考研数学课本重要还是习题册重要 已知七分之一等于0.142857,问小数点后面第100位上的数字是几?小数点后面前100位上的数学之和是多少 x为何值时代数式5/6x-1与代数式4+5/1x的值相等一元一次方程求求你们了(解题过程) 关于2009年数学一考研真题第17题求助,数一17题第二问说求体积,那个就是用锥体的体积减去椭球体的一部分,这部分的求法很多,我是想用二重积分曲顶柱体的体积算法,即把x解出来,然后做积分, 已知7分之1=0.142857,142857的循环.问小数点后面第100位上的数字是几?小数点后面前100位上的数字之和是多少? x取什么值时,代数式2x-5大于代数式1/2(2-x)? 如图,第一步,和第二步的依据是什么啊?好像没有相应的定理吧? 已知七分之一=0.142857(循环结0.142857的循环),问小数点后面第100位上的数字是几?小数点后面前100位上的数字之和是多少? 代数式5分之X+3的值是否能同时大于代数式2X+3和1-X的值?说明理由 10----16题怎么写? 0.3循环什三分之一吗?那0.3循环乘以3是1还是0.9循环? x取什么值时,代数式2x-5的值(1)不大于0(2)不小于-1(3)小于2分之1x+3(4)小于3分之2x-8说明理由 判断题:1.如果甲数的三分之二大于乙数的四分之三(甲乙都不等于0),那么甲数小于乙数.(为什么错?)2.体积相等的两个长方体,他们的表面一定相等.为什么错?1.a是一个大于0,而不大于1的数, 6.8小时等于几小时几分? 当x等于多少时,代数式三分之二x与代数式负二分之一x减二的和为0 ..数学14、15、16题求讲解 4.8小时等于几小时几分? 二分之一X:四分之一=8 求未知数,根本就没教过七分之五=二分之一:X 一次数学小测验中,有一道这样的填空题:0.3= ————%.小丽在横线上填了30%,而老师却判小丽填错了,小丽不服,去找老师问个究竟.请聪明的你评评小丽答对了吗,为什么? 7+8等于几 求未知数X 4.X-2/7X=1/14 设公差不为0的等差数列an的首项为1,且a6=a2^2,求数列an的通项公式,若bn满足bn=nan+5n,求{1/bn}的前n项和Tn 这题怎么写、、求数学大神 四个9怎么加等于1万
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn