首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用UIB-Unified Interbase (http://www.progdigy.com/?page_id=5)?)直接与数据交互

如何使用UIB-Unified Interbase (http://www.progdigy.com/?page_id=5)?)直接与数据交互
EN

Stack Overflow用户
提问于 2011-10-03 15:36:33
回答 2查看 758关注 0票数 2

在我当前的应用程序中,我可以将数据源的dataset设置为表组件(来自Devart.com的IBdac组件),这使我能够直接编辑dbgrid中的数据。uibdataset是只读的,这意味着它不能编辑任何东西,除非通过update sql。如何使用UIB组件实现此属性?我使用的是delphi xe,firebird2.5。

EN

回答 2

Stack Overflow用户

发布于 2011-10-04 13:31:29

我对UIB不是很熟悉,但是你尝试过使用TUIBQuery组件吗?在我的应用程序中,我总是使用IBQuery来修改数据。实际上我使用的是:TIBQuery -> TDataSetProvider -> TClientDataSet -> TDataSource

如果您使用的是TDataSetProvider,则必须调用TClientDataSet.ApplyUpdates将更改发布到底层数据库。

票数 0
EN

Stack Overflow用户

发布于 2016-09-18 21:22:15

你必须放置一个TUIBDatabase,然后放置一个TUIBDataSet,它应该连接到您的TUIBDatabase和TUIBTransaction在最后放置一个连接到TUIBDatabase的TDataSource : TUIBDatabase -> TUIBDatabase -> TDataSource

e.g

代码语言:javascript
复制
object UIBTransaction1: TUIBTransaction
  DataBase = UIBDataBase1
end
object UIBDataBase1: TUIBDataBase
  Params.Strings = (
    'sql_dialect=3'
    'lc_ctype=NONE'
    'user_name=SYSDBA'
    'password=masterkey'
    'sql_role_name=')
  DatabaseName = 
    'D:\FIREBIRDTEST.FDB'
  UserName = 'SYSDBA'
  PassWord = 'masterkey'
  LibraryName = 'fbclient.dll'
end
object UIBDataSet1: TUIBDataSet
  Transaction = UIBTransaction1
  Database = UIBDataBase1
  SQL.Strings = ('select * from CUSTOMER;')
end
object DataSource1: TDataSource
  DataSet = UIBDataSet1
end

您也可以使用markus_ja提到的选项,但是不要使用TUIBQuery,而要使用TUIBDatabase

TUIBDatabase -> TUIBDatabase -> TDataSetProvider -> TClientDataSet -> TDataSource

只需将此代码粘贴到您的表单上:

代码语言:javascript
复制
object UIBTransaction1: TUIBTransaction
  DataBase = UIBDataBase1
  Left = 120
  Top = 112
end
object UIBDataBase1: TUIBDataBase
  Params.Strings = (
    'sql_dialect=3'
    'lc_ctype=NONE'
    'user_name=SYSDBA'
    'password=masterkey'
    'sql_role_name=')
  DatabaseName = 
    'D:\FIREBIRDTEST.FDB'
  UserName = 'SYSDBA'
  PassWord = 'masterkey'
  LibraryName = 'fbclient.dll'
end
object UIBDataSet1: TUIBDataSet
  Transaction = UIBTransaction1
  Database = UIBDataBase1
  SQL.Strings = ('select * from CUSTOMER;')
end
object DataSetProvider1: TDataSetProvider
  DataSet = UIBDataSet1
end
object ClientDataSet1: TClientDataSet
  ProviderName = 'DataSetProvider1'
end
object DataSource1: TDataSource
  DataSet = ClientDataSet1
end

我希望这对你有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7632213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档