Start Doa updatingtable

Doa updatingtable

One camp is arguing that we should not be using SQL but calling procedures to add, amend and delete records, the other camp (Ok me :) ) is wondering is this is worthwhile as this is the job that SQL was designed to do in the first place.

Button1Click(Sender: TObject); begin with Oracle Data Set1 do begin Open; Show Message(' ROWID of the first record = ' Field By Name(' ROWID').

Hi, We are currently having a nice debate here about ways and means of getting at the data within the database (using Oracle 8).

Does anyone have any thoughts, experience or tales to tell on the pros and cons of doing things one way or the other ?

Thanks There are two main advantages of using stored procedures: 1) Except for *very* simple queries, performance is better even if the procedure executes the identical SQL statement, but for more complex queries performance can be made *much* better since a stored procedure can do any number of SQL statements.

Oder einen Picasso für 25 Millionen, den er sich tags zuvor für 3,5 Millionen angelacht hatte.„Totum pro parte“ – Hausdurchsuchungen nun auch bei Joachim Herrmann?

Beim bayerischen Af D-Landesvorsitzenden Petr Bystron erfolgte eine illegale Hausdurchsuchung durch IM Herrmanns (Innenminister Herrmanns) Behörden aus weitaus nichtigerem Grund und die Immunität eines Af D-Landtagsabgeordneten wurde aufgehoben, weil er „presserechtlich“ für einen Eintrag verantwortlich gewesen sei, den er gar nicht gepostet hatte.

Direct、Uni DAC等,要是专业的数据集组件,更是百花盛开,如FIBPLUS、SDAC、ODAC、DOA等等,商业和开源不尽其中!这里只讨论Uni DAC和ADO的一些比较。 Delphi能发展到现在,和一些著名的第三方控件厂商大力支持分不开,这其中包括Devart公司(Corelab)公司。Corelab公司做数据集驱动非常出名,就拿ODAC、SDAC和DBX驱动来说,已经远胜其他同行的第三方控件公司。Uni DAC是Devart公司最近的力作,将ODAC、 语句、Fetch Rows,更让人称道的是引入了Update SQL组件。 在处理MSSQL新增后的自增字段,和ADO一样可以直接自动返回自增字段值,这一点,BDE不能做到、DBX不能做到、ZEOSDB不能做到。更令人称奇是,配合TUni Update SQL,还能自动返回自增字段值。 TUni Update SQL是一个好东西,ADO缺少TUdate SQL运作模式,默认的更新机制是主键字段 已变化的字段做where条件。在一般情况下是没问题,但如果这个表没有主键或where条件中的字段小数位很长导致误餐,就会产生更新找不到记录。TUdate SQL可以保证这点,运作灵活又透明。 4、对oracle支持非常好。别的不说,光是一个oracle连接的Direct Uni DAC的单条记录刷新 1、设置 SQLRefresh. Text:='SELECT * FROM TName WHERE ID = : ID'(其中ID是表TName的主键,以确保返回只有一条记录) 2、设置 TRefresh Options为 [ro After Insert,ro After Update],即为新增后刷新,修改后刷新。 3、调用 Uni Query1. Refresh Record 是一点反映也没有的 Updating Table 属性 Updating Table 服务显示表将被更新(如果在查询中有许多表)。如果它的值为空,正在使用的表就会显示SQL操作的结果。 为了更好地对查询结果进行操作,建议应总是设置属性Updating Table cachedupdates缓存更新 Uni Query默认状态为行提交,使用前根据需要设置readonly或cachedupdates属性 Filter过滤 Uni Query. Text:= ‘select * from YHB where s YHBH=_YHBH’; 在传参时有两种写法 1)最稳妥的写法 QExec.

Filter默认大小写区分,请注意设置Filter Options属性([fo Case Insensitive]),TVirtualtable也存在相同情况 在Uni Query的SQL定义参数 我们经常会在Uni Query的SQL定义一些参数,在传参时,需要特别注意,例如: QExec.

SELECT文で取得したデータを更新するために、Oracleはテーブルのキー、特にユニークキーを必要とします。 Oracleは全てのテーブルで使えるユニークキーとして ROWIDを用意するため、TOracle Data Setは、データセットを更新するために、テーブルの ROWIDを使うように設計されています。 よって、SQLプロパティのSELECT文に、テーブルのROWIDを含めることが、データセットを更新可能にするために必要です。ROWIDがクエリに含まれない場合データセットはリードオンリーになってしまいます。なお、SELECT対象がリードオンリーのビューであるなど、ROWIDを使用した更新が不可能な場合にも、On Apply Recordイベントを記述することで対応が可能です(後述)。 ROWIDをクエリに含めさえすれば、BDEのTQueryと同じように以下のメンバを用いてデータを操作できます。 //Oracle Data Set.


As a background to this discussion, everything that Wayne says about stored procedures is correct. One school says perform all modifications to the database through parameterized stored procedures, simply passing values to the server.