DELPHI基础教程:Delphi客户服务器应用开发(三)[4]
TSoredProc的关键属性
⑴ DatabaseName属性
DatabaseName属性描述要访问的数据库的名字 该属性可以为
● 已定义的BDE别名
● 本地型数据库的目录
● Local InterBase服务器的目录路径和文件名
● TDatabase定义的应用程序别名
在改变DatabaseName之前要使用Close方法将Dataset部件置为非活跃状态
⑵ StoredProcName属性
StoredProcName属性表示服务器上的存储过程名 Oracle服务器允许多个具有相同名字的存储过程 因此要设置Overload属性来描述执行在Oracle服务器上的存储过程名
⑶ Overload属性
Oracle服务器允许Oracle软件包中存储过程的重载 就是说具有相同名字的不同过程 设置Overload属性用来描述执行在Oracle服务器上的存储过程 如果Overload值为零 则假定没有重载 如果Overload为 则Delphi执行具有同名的第一个存储过程 如果值为 则执行第二个存储过程
⑷ Params属性
Params属性包含传给存储过程的参数
关键方法
⑴ ParamByName方法
声明 function ParamByName(const Value: String) TParam;
ParamByName方法返回Params属性中具有名为Value的元素值 一般用该方法在动态查询中给参数赋值
⑵ Prepare方法
PrePare方法准备要执行的存储过程 这允许服务器载入存储过程 否则准备处理异常
⑶ ExecProc方法
ExecProc方法执行服务器上的存储过程
⑷ Open方法
Open方法打开DataSet部件 并将其置于浏览状态 这相当于将Active属性置为True 对于TStoredProc如果存储过程返回一个结果集 则使用Open执行存储过程 如果存储过程返回单行 早使用ExecProc执行存储过程
TStoreProc使用方法
建立一个StoredProc部件
为数据库服务器上的存储过程建立一个TStoredProc部件的步骤如下
⑴ 从Component Palette的Data Access页选择TStoredProc部件放在数据模块上
⑵ 将TStoredProc部件的DatabaseName属性设置为存储过程所在的数据库名
DatabaseName必须是BDE别名
⑶ 将TStoredProc部件的StoredProcName属性设为所用的存储过程名 或者从下拉式
列表框中选择
⑷ 在TStoredProc部件的Params属性中描述输入参数 可以使用参数编辑器来设置输
入参数 参数编辑器也可让用户察看存储过程返回给应用程序的值
设置存储过程的输入参数 察看输出结果参数
许多存储过程需要给它们传入一系列的输入参数 以确定处理什么和怎样处理 在Params属性中描述这些参数 所描述的输入参数的顺序是很重要的 它由服务器上的存储过程来确定 在设计时 最容易和最安全的方法是激活TStoredProc参数编辑器 编辑输入参数 参数编辑器以正确的次序列出输入参数 让你给它们赋值
要激活TStoredProc的参数编辑器
① 选择TStoredProc部件
② 按鼠标右键激活加速菜单(Speed Menu)
③ 选择Define Parameters
参数名列表框显示过程的所有输入 输出和结果参数 有关输入 输出参数的信息从服务器中获得 对于某些服务器而方 参数信息是不可访问的 如Sybase 在这种情况下 列表框是空的 因此必须自己按过程要求的顺序增加输入输出参数
参数类型复选框中描述所选的参数是输入 输出 还是结果参数 如果服务器支持参数可以既是输入又是输出 如果在列表框中增添参数 就必须设置参数类型
数据类型复选框 列出列表框中所选参数的数据类型 如果给列表框真善美参数 必须设置数据类型
在值编辑框中给输入参数赋值
如果服务器不传递存储过程信息给Delphi 则可以用Add按钮给存储过程增添参数 Delete按钮则是将增添的参数删除 Clear按钮将清除列表框中所有参数
设置完参数后 选择OK按钮
在运行时建立参数和参数值
在运行时建立参数 可直接访问Params属性 Params属性是参数字符串的数组 例如 下列代码将编辑框的文本赋给数组的第一个字串
StaredProc Params[ ] Asstring := Edit Text
也能够用ParamsByName方法通过名字访问参数
StoredProc ParamsByName( Company ) Asstring := Edit Text;
准备和执行存储过程
要使用存储过程还必须准备并执行它 可以有两种方式准备一个存储过程
● 在设计时 通过选择参数编辑器的OK按钮
● 在运行时 通过调用TStoredProc的Prepare方法
例如 下面的代码准备存储过程的执行
StoredProc Prepare;
要执行准备好的存储过程 调用TStroedProc部件的ExecProc方法 下列代码演示了准备和执行存储过程
StoredProc Params[ ] Asstring := Edit Text;
StoredProc prepare;
StoredProc ExecProc;
当你执行一个存储过程 它返回输出参数或结果集 有两种可能的返回类型 单个返回 如单值或值集 和一群结果集 返回很多值
访问输出参数和结果集
存储过程在输出参数数组中返回值 如果服务器支持返回值可以是单个结果或者结果集
在运行时访问存储过程的输出参数 可以索引Params属性或者用ParamByName方法访问这些值 下列表达式都用输出参数设置了编辑框的值
Edit Text := StoredProc Params[ ] AsString;
Edit Text := StoredProc ParamsByName( Contact ) AsString;
如果存储过程返回结果集 则用标准数据相关控制访问和显示值会更有用
在某些服务器上如Sybase 存储过程能象查询语句那样返回结果集 应用程序可以使用数据相关控制一显示这些存储过程的输出
用数据相关控制显示存储过程返回结果的方法如下
① 将DataSource部件放在数据模块上
② 将DataSource部件的DataSet属性设置为接收数据的TStoredProc部件的名字
③ 将数据相关控制的DataSource属性设为DataSource部件的名字
这样 当用于TStoredProc部件和Active属性为True时 数据相关控制就能显示从存储过程返回的结果
返回目录 DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
J EE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLE G数据库开发优化指南
Java程序性能优化 让你的Java程序更快 更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
lishixinzhi/Article/program/Delphi/201311/25132
PowerBuilder 特点
1.PowerBuilder:一种图形化的快速应用开发(RAD)工具被广泛用于数据库应用开发。
2.PowerBuilder:是用来进行客户/服务器开发的专业工具
从6.0版本开始,PowerBuilder支持三层或是n层结构。对一个应用程序进行分割以后,将代码分为不同的逻辑组件,具体分配取决于系统方案及当前的商业要求,这种结构的优点包括四个方面:
● 可重复使用。可在不同的应用程序间共享;
● 性能提升。将计算机负担从客户机转至服务器,开发者可充分利用计算资源,使应用程序的执行达到最佳状态,由此获得更好的性能;
● 易于管理。可将大型、复杂的应用程序划分为易于管理的模块;
● 易于维护。由于组件集中,便于重复使用,适应商业需求的变化。
使用PowerBuilder可以快速开发出客户/服务器模式及分布式数据库应用程序。
3。PowerBuilder提供对面向对象编程的全面支持,并内置多种对象类,其中以DataWindow对象最为著名,可以方便的访问数据库。PowerBuilder还提供了对多种数据源的简便连接,具有高度的开放性和灵活性。
4.具有强大的、易于使用的第四代编程语言PowerScript
PowerScript是PowerBuilder使用的面向对象的编程语言,它是由命令、语句、函数,还有用户自定义的对象或类及SQL语句组成的,它是一种极为灵活的高级结构化语言。它具有易学易用的特点。
5 PowerBuilder与网络
PowerBuilder的早期版本4.0和5.0非常适用于Client/Server结构的应用系统,但
是随着应用系统结构的发展,对于目前的Web应用结构和瘦客户端的应用模式来说具
有一定的局限性。
PowerBuilder 6.0作了很大改进,提供了强大的组件生成器,可以生成C++、Java,Proxy、COM等组件,具有共享对象、异步处理、Server-Push、Remote Datastore、命名服务器等技术和增强的调试功能,但主要是提供了多种方式支持WEB应用。
PowerBuilder对WEB提供了强大的支持,主要有以下几个方面:
● 对PB Window Plug-in和Window-Activex
● PBWeb客户机的PowerBuilderVM支持;
● 对HTML、PB和Java客户机的连接的支持;
● 用于Web客户机访问中层逻辑的Web.PB。
web开发,是开发服务端的,开发好的web程序,打包成war,然后放到web容器中运行,而web容器,是部署在服务器中的。
web的客户端就是浏览器,教你设计页面,学CSS/HTML之类的。
标准的web服务器只具有与客户端浏览器通讯的功能,不能处理业务逻辑请求。
需要编写程序来复制处理客户端的请求。通过组件来处理客户端的请求,这个组件就是实现特定规范的可以单独部署的软件模块。组件必须通过容器来实现。容器是实现特定规范的程序,负责组件的运行环境和管理组件的生命周期。tomcat,weblogic都提供了容器。
web端可以理解为tomcat,并且tomcat中运行着你编写的程序,这个程序称为web应用。
java服务器开发就是通过java语言来编写程序,组合成web应用,将来部署到tomcat中,
编写的这些程序就是组件,用来处理客户端请求的。为了高效还会使用一些框架和技术来配合java程序,比如SpringMVC,struts2,Servlet。
1、精通C++、STL及各种设计模式,熟悉各种数据结构和算法;
2、熟悉3D图形学原理,3D图形的常用技术,有较强的数学功底,有Shader编写经验;
3、有UE3、Gamebryo、Unity3D等一些游戏引擎使用经验。
游戏客户端,游戏库客户使用端,相对于游戏服务端的另一端,服务端是为游戏数据库服务的,而客户端就是游戏数据使用端。几乎现在任何游戏都有其客户端,用来连接服务端而为玩家服务。
服务端是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据。是实现游戏特色化的重要途径,也是最直接可以通过游戏表现出来的技术,比如要修改某个NPC的参数,重加载后,在游戏内立刻体现出来。
客户端,顾名思义就是给客户用的,需要简单明了,一看就知道怎么操作,通常会发送一些命令到服务器端。
服务器端就是处理客户端发送的命令的,一般都是对数据库的一些操作,还有一些后台处理。
一般开发都需要组合,例如ASPNET和SQL server数据库、php和sql server、JAVA和sql server ,数据库方面现在好的有sql server 2005微软的access也是常用。语言主要是c语言,java 语言,php实用于开发中小型网站。
C#开源项目(国外的还是很多) 一、Ajax框架 AjaxNET Professional
(AjaxPro)是最先把AJAX技术在微软NET环境下的实现的AJAX框架之一。它在客户端脚本之上创建代理类来调用服务器端的方法。
MagicAjaxNET是一款在ASPNET下创建Web页面提供AJAX技术的框架。它使开发人员很容易把AJAX整合到他们的页面而不需要替换ASPNET控件或自己写javascript脚本代码。
AnthemNET是为ASPNET开发环境提供的开源AJAX工具包,它可以运行于ASPNET 11和20。
二、工作流(workflow)
WorkflowNet是使用微软Net技术基于wmfc标准的创建工作流引擎。
NetBPM是JBpm移植到net平台下的一款开源工作流软件。NetBpm可以很容易和Net应用程序集成在一起,可以创建,执行和管理工作流程序。 Bpm
Tool支持将业务模型转换成软件模型。业务开发人员可以使用模型驱动的方法设计,实现,执行和跟踪业务流程。因此开发人员能够更容易的关注业务逻辑的变化。
其实微软自己的WPF做WorkFlow也很厉害。
三、文本编辑 FCKeditor是一款功能强大的开源在线文本编辑器(DHTML
editor),它使你在web上可以使用类似微软Word 的桌面文本编辑器的许多强大功能。它是轻量级且不必在客户端进行任何方式的安装。 FreeTextBox
是一个基于 Internet Explorer 中 MSHTML 技术的 ASPNET 开源服务器控件。这是一款优秀的自由软件(Free
Software),我们可以轻松地将其嵌入到 Web Forms 中实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web
系统中都会有用途。 VietPad是一个功能完整的跨平台的Java/NET的Vietnamese
Unicode开源文本编辑器。支持打开,编辑,打印,转换,排序,和保存基于文本的Unicode格式的Vietnamese文件。
NetSpell是一款NET框架下的开源拼写检查引擎。 PPC_edit是一款应用在Pocket PC上的开源文本编辑器,它支持TXT, RTF, HTML,
WordML, DocBook 和 ZIP格式的文件,屏幕上会显示国际标准的软键盘。
四、博客(Blog)
NovaShare是一款Blog引擎,它使你创建基于交互式的web的新闻和论坛网站,很像WonkoSlice或Slashdot。管理员可以发布文章和发起投票,浏览者可以创建用户帐号,发表议论等等。
dasBlog是从BlogX 网上日志引擎发展而来。像Trackback ,Pingback
一样增加许多附加的特征,有完整的Blogger/MovableType
API支持,API注释,完整的Radio-style模板定制,支持Mail-To-Weblog/POP3的附件和内嵌,基于WEB的
DHTML,OPML,配置的编辑器。 DotText是一个被使用了数百个blogs的强劲的blog引擎。这是一个N-tiered应用的例子。
tBlogger是一个C#开发的完整的blog网站程序,使用XML配置。
Blog现在可以使用MVC的其他开源项目来构建,这些项目在codeplex上有很多,其中微软自己的就有OXite。
五、系统构建
NETZ是一款免费开源工具,它可以压缩和打包微软 NET 框架可执行文件(EXE,
DLL)以使他们更小。更小的可执行文件占用的磁盘空间较少且因为读取文件时对磁盘的访问较少而使读取数度更快。它和PE(portable
executable)打包工具不一样,NETZ是使用 C# 编写的存粹的 NET 解决方案。NETZ可以用来打包几乎每一种 NET
支持的语言编写的程序。NETZ支持 NET EXE 和 非共享(non-shared)的 DLL
文件。压缩过的程序能以相同的方式解压缩这些对最终用户是透明的。 NAntContrib为NAnt提供定制任务的工具。
Prebuild是XML驱动的一款跨平台pre-build工具,使开发人员很容易就可以为IDE和NET开发工具生成项目或构建文件。它支持 Visual
Studio NET 2002, 2003, 2005, SharpDevelop, MonoDevelop 和 NAnt。
BusyBeeBuilder是NET平台下功能强大,易于使用,可扩展的开源构建自动操作工具。 DracoNET 是 Windows
服务应用程序。它的设计使其容易持续的集成新特性。DracoNET监视你的源代码储存库。当探测到你的项目有变化时自动重新创建项目并把包含变化列表的创建结果发送到你的Email。
Build Studio为软件的自动构件处理提供了一套完整的解决方案。 CruiseControlNET是NET平台下的一款整合服务器。
NAnt类似Apache项目下的Ant,是Net下的开源构建工具。适用在自动编译NET应用的场合,如NET项目的每日构建(nightly
build)。
说老实话,我并不认为系统构建工具的作用真的有那么强大,如果你真的计划做一个很大的项目,且持续开发时间很长,那么你可以使用上面的系统构建工具。
五、图表制作
ZedGraph是C#编写的NET类库,提供了用户控件和web控件。它可以创建2D的线性图、条形图和饼图。它功能完整且有详细的功能自定义,不过
使用默认的选项就足够好用了。一款类似 PieChart, StackBar, LineChart的C#开源图表组件。
NPlot是一款NET下的开源图表类库它值得称道的地方是优雅且灵活的API设计NPlot包含了Windows Form控件,
ASPNET控件和一个创建Bitmap的类。还有一个可用的GTK#控件。 XSCharting是C#开发的图表组件,提供了多种多样的图表选项。
DaveChart是一个免费的DotNet类库。 NChart 提供了很多值得应用在商业,教育等多个领域的2 D图表。
微软自己已经提供了一个chat绘制控件,也就是原来的dunat,如果那个可以满足你的要求,那么完全没有必要使用上面的。但是如果你需要研究画图,作自己定义的chat,那么这些开源的项目将对你有很大的帮助。
六、聊天系统
Dot Net Chat
server是基于DotNet框架开发的聊天服务器和客户端项目。说老实话,我对这个很感兴趣,有时间,要瞧瞧它的代码是咋实现的。
七、内容管理系统(CMS)
Ludico是C#编写的居于ASPNET
20的Portal/CMS系统。它的模块化设计是你可以按照你希望的使用或开发网站功能。它里面有高级的用户管理,一个所见即所的(WYSIWYG)的编辑器等。
mojoPortal是一款C#开发的面相对象网站框架,它可以运行于Windows的ASPNET 和GNU/Linux 或Mac OS X的Mono的平台上。
Cuyahoga是C#开发的灵活的CMS / Portal 解决方案。它可以运行于Microsoft NET 和Mono 平台,支持SQL Server,
PostgreSQL或MySQL作为底层数据库。 Umbraco是一款在net平台下C#开发的开源内容管理系统,该系统效率,灵活,用户界面都不错。 Kodai
CMS是NET平台下的一款功能齐全的内容管理系统。 Rainbow项目是一款使用Microsoft’’s
ASPNET和C#技术开发的有丰富功能的开源内容管理系统。 NkCMS是使用ASPnet和Sql server 2000开发的内容管理系统。
Amplefile是一款内容管理系统,是Net环境下的windows应用程序,使用了Net remoting
GoKryo是一个用ASPNET(C#)NET 实现的简单的内容管理系统,后台数据库使用Microsoft SQL Server 。 ndCMS是
ASPnet
(C#)下的一个内容管理系统。它提供了用户管理,文件管理,一个WYSIWYG编辑器,模板管理,拼写检查和内置的http压缩。ndCMS的目标是提供一个简单而快速的方式部署Net站点以节省你的时间和金钱。
这些开源的CMS我试用了几个,说真的,拿来研究可以,要真的实施,估计很难。
九、论坛系统
YetAnotherForum可以作为ASPNET开发的网站的论坛或是留言板。它使用MSSQL作为底层数据库。
十、安装制作
izfree是一套套免费的工具用于帮助创建使用Microsoft”’’s Windows
Installer 技术的安装程序。使用izfree你可以为你的应用程序制作强劲的安装程序。
Windows Installer XML
(WiX)可以重XML源文件创建Windows程序安装包的工具集。它支持命令行方式,开发人员可以把结合它来创建MSI和MSM安装包一个可以和商业软件安装产品相比的开源打包工具。
一般的需求试用VS
自带的就可以了,更复杂的需要用到InstallShield,这样看起来开源的就没啥意义了。
十一、IoC容器
Springnet是从java的Spring
Framework移植过来的。java的Spring包含了许多功能和特性,在当前的Springnet都有提供。Springnet最初发布的版本包含了一个很有特色的IoC容器。
Castle是一组应用开发的工具,内含一个简单的IoC容器。
StructureMap是NET环境下的一个轻量级依赖注入工具,StructureMap也是一个灵活的、可扩展的通用“插件”机制的NE
我用过StrucutureMap,但是给我的感觉是,试用这个似乎没多发帮助。
十二、网络客户端
NET FTP Client是C#编写的开源类库。
NET Telnet是微软NET
Framework下的C#开发的开源telnet类库。它的灵感来至Java Telnet Application。
metro这个项目是C#编写的类库,它提供了一套丰富的类使开发IP version 4, TCP,
UDP and ICMP等工作更容易。它包含了有很有用的工具如包嗅探器,网络分析工具例如路由跟踪,ping等。
LJNET是LiveJournal站点的客户端。它为LJ在线日志服务提供了简单而强大的用户接口。
NET VNC Viewer 是一款完全用C#开发的开源VNC观察器。它兼容Smartphones,
Pocket PC和Windows的电脑(NET CF or NET Framework)。它比起其它观察器的优点是可以在Pocket
PC上全屏显示而且可以旋转屏幕。
GVDownloader允许你从google videos, metacafe, putfile,
youtube, breakcom 和更多的地方快速下载内含的视频和多媒体。它的包含一个强劲IE插件和位于你系统托盘的独立程序。
DotNetOpenMail能够使你在微软net框架开发的aspnet,
WinForm应用程序发送Email。它是C#编写的开源组件,它不需要使用SystemWebMail类库就可以容易的创建带附件HTML和
Plain-text的Email。程序员不需要知道很多相关的细节就可以使用不同的字符集或不同的MINE编码来创建
multipart/alternative,multipart/related和multipart/mixed的MIME消息。
DotMSN是一款独立的开源类库,它不需要和官方的MSN Messenger交互,因此不必安装MSN
Messenger就可以使用DotMSN和MSN
Messenger服务通信DotMSN是C#编写的,所以NET环境支持的语言都能够使用DotMSN类库使用简单而且实现方便。它灵活,坚固,
轻量级利于整合到任何应用系统使用DotMSN的应用系统能实现从创建消息机器人到自定义客户端等各种不同的功能如果你的应用程序需要和
Messenger服务通信,DotMSN是一个不错的工具
SharpSSH使用C#实现了SSH2协议,它支持SSH, SCP 和 SFTP
OpenPOPNET一组和POP Servers通信的NET类库。
IceChat是为连接多样的IRC Servers设计的Internet Relay Chat
Client。
lphant是为edonkey/emule开发的开源客户端程序。
NET FTP Client C#开发的类库。
OpenSmtpnet 是 C# 开发的开源SMTP组件。它不依赖NET Framework
的SystemWebMail 包中的类。允许开发人员使用不同于MS SMTP的SMTP 服务器且提供了web
service而可以通过HTTP发送email。
这里面有几个值得推荐,例如DotMsn这个,在某些场合就很有用处。
0条评论