Home DADE
New Blog Posts: Merging Reports - Part 1 and Part 2

dbExpress a (strange) solution ?

edited March 2003 in DADE
I found a way which seems to work... well, I can now build a SQL on a
Interbase server using
dbExpress (and print a report !). All the previous exceptions seem for the
moment disapeared.

Designer.DataSettings :
A TppDataDictionary must be assigned.
UseDatadictionary must be true.

DataDictionary :
ValidateFieldNames must be False.
ValidateTableNames must be False.

Regards
Marc

Comments

  • edited March 2003
    That is strange. What else is different about this setup than before? Is
    only the dictionary assignment different? I still think you had a
    configuration problem with the dbExpress connection settings, if you
    couldn't get a simple button based TSQLConnection.GetTableNames demo to work
    before.

    You should be able to disconnect the data dictionary and it should work. How
    do you think the data dictionary builder is able to get the tablenames?-It
    uses the SQLConnection at Delphi design time. You must be changing some
    setting somewhere at runtime so that the SQLConnection fails at runtime.
    Have you verified that you only have one Interbase driver definition in your
    dbxDrivers.ini file and that you aren't using two different ones? Everything
    is working fine in our tests here. If you could describe the environment in
    its entirety, perhaps I could reproduce the problem. If I could reproduce
    the problem on my machine using your suggestions, then maybe then there
    could be more checks added in our code, as you say you get access
    violations, so that this doesn't happen and you can get an appropriate
    exception raised instead which can help you track down the problem.


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited March 2003
    A quick answer (time difference) I didn't check all...
    First sorry for the different thread.
    Well, to obtain those kind of result I had to modify the
    daDbExpress.GetTableNames as wrote above.
    My connection parameters are exactly the same as yours.
    I only have one Interbase driver in my dbxDrivers.ini.
    But...
    On my system 2 dbexpint.dll are present (?).
    One in the windows sytem dir and another in the delphi lib dir.
    They are different (size and date).
    After changing the older one, GetTableNames seems to work.
    The tables can be displayed.
    A query seems to be build in RB without SQL statement error.
    A problem is still present :
    switching between use/not use datadictionay at runtime doesn't work :
    The Tables and the Fields remain the same, only the Joins seem to be
    affected.
    (same problem with desktop database as paradox).

    Many thanks for your help.
    I will try to advise you a better and understanding message.

    Regards

    Marc
  • edited March 2003
    Hello,
    Sure now the GetTableNames procedure works properly,
    I had a conflict between the two dxexpint.dlls on my system.

    Sure also that switching at runtime between use/not use DataDictionary
    doesn't work.
    RB keep the design time designer.datasettings.
    Ex :
    At design time UseDatadictionary=true
    The COUNTRY table does'nt belong to the dictionary.
    I run the demo app.
    DataTab File/New
    Only the tables of the dictionary are present, it is correct
    File/DataSettings-> do not use the dictionary
    File/New
    Only the tables of the dictionary are present, it is not correct.
    What do you think of this ?

    Below you will find the complete MyEURpt.dfm
    Sorry it is a bit long, but if you find sommething not correct...

    Thanks

    Regards

    Marc

    object myEndUserSolution: TmyEndUserSolution
    Left = 297
    Top = 91
    AutoScroll = False
    Caption = 'End-User Reporting: InterBase via dbExpress'
    ClientHeight = 579
    ClientWidth = 426
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    Icon.Data = {
    0000010001002020100000000000E80200001600000028000000200000004000
    0000010004000000000080020000000000000000000000000000000000000000
    0000000080000080000000808000800000008000800080800000C0C0C0008080
    80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000884000000000000
    000083BBBBB34003BBBBB800000000000004BBBBBBBB308BBBBBBB0000000000
    00003BBBBBB3403BBBBBB3000000000000000BBBBBB404BBBBBB300000000000
    000003BBBBB008BBBBBB800000000000000003BBBBB003BBBBBB000000000000
    000003BBBBB48BBBBBB3000000000000000003BBBBBBBBBBBB30000000000000
    000003BBBBBBBBBBB800000000000000000003BBBBB33BBBBB80000000000000
    000003BBBBB003BBBBB4000000000000000003BBBBB003BBBBB8000000000000
    000003BBBBB003BBBBB300000000000000000BBBBBB84BBBBBB8000000000000
    00043BBBBBBBBBBBBBB00000000000000004BBBBBBBBBBBBB340000000000000
    0000433888883338400000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000FFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFF00
    603FFE00403FFF00403FFF80807FFF81807FFF8180FFFF8000FFFF8001FFFF80
    03FFFF8001FFFF8180FFFF8180FFFF8180FFFF8000FFFE0001FFFE0001FFFF00
    07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
    OldCreateOrder = True
    Position = poScreenCenter
    ShowHint = True
    OnCreate = FormCreate
    PixelsPerInch = 96
    TextHeight = 13
    object Shape20: TShape
    Left = 181
    Top = 362
    Width = 2
    Height = 25
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object Shape7: TShape
    Left = 222
    Top = 327
    Width = 38
    Height = 2
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object Shape26: TShape
    Left = 181
    Top = 258
    Width = 2
    Height = 81
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object Shape25: TShape
    Left = 93
    Top = 220
    Width = 56
    Height = 2
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object Shape24: TShape
    Left = 94
    Top = 263
    Width = 56
    Height = 2
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object Shape1: TShape
    Left = 254
    Top = 295
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clRed
    Shape = stRoundRect
    Visible = False
    end
    object Shape4: TShape
    Left = 7
    Top = 246
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clYellow
    Shape = stRoundRect
    Visible = False
    end
    object Shape11: TShape
    Left = 253
    Top = 205
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clNavy
    Shape = stRoundRect
    Visible = False
    end
    object Label6: TLabel
    Left = 277
    Top = 210
    Width = 55
    Height = 13
    HelpType = htKeyword
    Caption = 'Database'
    Color = clBlack
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWhite
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentColor = False
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape12: TShape
    Left = 254
    Top = 226
    Width = 102
    Height = 1
    HelpType = htKeyword
    Brush.Color = clBlack
    Visible = False
    end
    object Shape9: TShape
    Left = 130
    Top = 386
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clTeal
    Shape = stRoundRect
    Visible = False
    end
    object Label5: TLabel
    Left = 137
    Top = 391
    Width = 89
    Height = 13
    HelpType = htKeyword
    Caption = 'Data Dictionary'
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlack
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentColor = False
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape10: TShape
    Left = 131
    Top = 407
    Width = 102
    Height = 1
    HelpType = htKeyword
    Visible = False
    end
    object Shape6: TShape
    Left = 130
    Top = 294
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clBlue
    Shape = stRoundRect
    Visible = False
    end
    object Label7: TLabel
    Left = 156
    Top = 299
    Width = 51
    Height = 13
    HelpType = htKeyword
    Caption = 'Designer'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWhite
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape5: TShape
    Left = 131
    Top = 315
    Width = 101
    Height = 1
    HelpType = htKeyword
    Visible = False
    end
    object Label8: TLabel
    Left = 43
    Top = 251
    Width = 31
    Height = 13
    HelpType = htKeyword
    Caption = 'Items'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlack
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape3: TShape
    Left = 8
    Top = 267
    Width = 101
    Height = 1
    HelpType = htKeyword
    Visible = False
    end
    object Label1: TLabel
    Left = 286
    Top = 300
    Width = 39
    Height = 13
    HelpType = htKeyword
    Caption = 'Report'
    Color = clBlack
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWhite
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentColor = False
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape2: TShape
    Left = 255
    Top = 316
    Width = 101
    Height = 1
    HelpType = htKeyword
    Brush.Color = clBlack
    Visible = False
    end
    object Shape15: TShape
    Left = 8
    Top = 165
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clLime
    Shape = stRoundRect
    Visible = False
    end
    object Label2: TLabel
    Left = 38
    Top = 170
    Width = 42
    Height = 13
    HelpType = htKeyword
    Caption = 'Folders'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlack
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape16: TShape
    Left = 8
    Top = 185
    Width = 102
    Height = 1
    HelpType = htKeyword
    Visible = False
    end
    object Shape22: TShape
    Left = 130
    Top = 205
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clFuchsia
    Shape = stRoundRect
    Visible = False
    end
    object Label10: TLabel
    Left = 158
    Top = 210
    Width = 47
    Height = 13
    HelpType = htKeyword
    Caption = 'Explorer'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlack
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape23: TShape
    Left = 131
    Top = 226
    Width = 101
    Height = 1
    HelpType = htKeyword
    Visible = False
    end
    object Shape29: TShape
    Left = 66
    Top = 467
    Width = 2
    Height = 16
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object Shape18: TShape
    Left = 16
    Top = 477
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clAqua
    Shape = stRoundRect
    Visible = False
    end
    object Shape17: TShape
    Left = 291
    Top = 467
    Width = 2
    Height = 17
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object Shape8: TShape
    Left = 181
    Top = 457
    Width = 2
    Height = 22
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object Shape13: TShape
    Left = 132
    Top = 478
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clAqua
    Shape = stRoundRect
    Visible = False
    end
    object Label3: TLabel
    Left = 166
    Top = 483
    Width = 34
    Height = 13
    HelpType = htKeyword
    Caption = 'Fields'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlack
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape14: TShape
    Left = 133
    Top = 499
    Width = 102
    Height = 1
    HelpType = htKeyword
    Visible = False
    end
    object Label9: TLabel
    Left = 48
    Top = 482
    Width = 39
    Height = 13
    HelpType = htKeyword
    Caption = 'Tables'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlack
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape19: TShape
    Left = 17
    Top = 498
    Width = 102
    Height = 1
    HelpType = htKeyword
    Visible = False
    end
    object Shape21: TShape
    Left = 245
    Top = 477
    Width = 103
    Height = 72
    HelpType = htKeyword
    Brush.Color = clAqua
    Shape = stRoundRect
    Visible = False
    end
    object Shape27: TShape
    Left = 246
    Top = 498
    Width = 102
    Height = 1
    HelpType = htKeyword
    Visible = False
    end
    object Label4: TLabel
    Left = 280
    Top = 482
    Width = 30
    Height = 13
    HelpType = htKeyword
    Caption = 'Joins'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlack
    Font.Height = -12
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentFont = False
    Transparent = True
    Visible = False
    end
    object Shape28: TShape
    Left = 67
    Top = 467
    Width = 226
    Height = 2
    HelpType = htKeyword
    Brush.Style = bsClear
    Pen.Width = 2
    Shape = stRoundRect
    Visible = False
    end
    object btnLaunch: TButton
    Left = 342
    Top = 165
    Width = 75
    Height = 25
    Caption = 'Launch'
    TabOrder = 0
    OnClick = btnLaunchClick
    end
    object Memo1: TMemo
    Left = 7
    Top = 9
    Width = 411
    Height = 150
    Lines.Strings = (
    'End-User Reporting using InterBase with dbExpress'

    '----------------------------------------------------------------' +
    '----------------'
    ''
    'For detailed information please see the ReadMe.doc located'
    'in this directory.')
    ReadOnly = True
    TabOrder = 1
    end
    object pnlStatusBar: TPanel
    Left = 0
    Top = 561
    Width = 426
    Height = 18
    Align = alBottom
    Alignment = taLeftJustify
    TabOrder = 2
    end
    object dsTable: TDataSource
    DataSet = sdsTable
    Left = 53
    Top = 507
    end
    object dsField: TDataSource
    DataSet = sdsField
    Left = 170
    Top = 509
    end
    object ppDataDictionary1: TppDataDictionary
    AutoJoin = True
    BuilderSettings.DatabaseName = 'euSQLConnection'
    BuilderSettings.SessionType = 'DBExpressSession'
    FieldFieldNames.AutoSearch = 'AUTOSEARCH'
    FieldFieldNames.DataType = 'DATATYPE'
    FieldFieldNames.FieldName = 'FIELD_NAME'
    FieldFieldNames.FieldAlias = 'FIELD_ALIAS'
    FieldFieldNames.Mandatory = 'MANDATORY'
    FieldFieldNames.Searchable = 'SEARCHABLE'
    FieldFieldNames.Selectable = 'SELECTABLE'
    FieldFieldNames.Sortable = 'SORTABLE'
    FieldFieldNames.TableName = 'TABLE_NAME'
    FieldPipeline = plField
    JoinFieldNames.TableName1 = 'TABLE_NAME1'
    JoinFieldNames.TableName2 = 'TABLE_NAME2'
    JoinFieldNames.JoinType = 'JOIN_TYPE'
    JoinFieldNames.FieldNames1 = 'FIELD_NAMES1'
    JoinFieldNames.FieldNames2 = 'FIELD_NAMES2'
    JoinFieldNames.Operators = 'OPERATORS'
    JoinPipeline = plJoin
    TableFieldNames.TableName = 'TABLE_NAME'
    TableFieldNames.TableAlias = 'TABLE_ALIAS'
    TablePipeline = plTable
    UserName = 'DataDictionary1'
    Left = 168
    Top = 417
    end
    object ppDesigner1: TppDesigner
    AllowDataSettingsChange = True
    Caption = 'ReportBuilder Pro'
    DataSettings.DatabaseName = 'euSQLConnection'
    DataSettings.SessionType = 'dbExpressSession'
    DataSettings.AllowEditSQL = True
    DataSettings.CollationType = ctASCII
    DataSettings.DatabaseType = dtInterBase
    DataSettings.DataDictionary = ppDataDictionary1
    DataSettings.IsCaseSensitive = True
    DataSettings.SQLType = sqSQL2
    DataSettings.UseDataDictionary = True
    Position = poScreenCenter
    Report = ppReport1
    IniStorageType = 'IniFile'
    IniStorageName = '($WINSYS)\RBuilder.ini'
    WindowHeight = 400
    WindowLeft = 100
    WindowTop = 50
    WindowWidth = 600
    Left = 171
    Top = 324
    end
    object dsItem: TDataSource
    DataSet = sdsItem
    Left = 45
    Top = 277
    end
    object ppReport1: TppReport
    PrinterSetup.BinName = 'Default'
    PrinterSetup.DocumentName = 'Report'
    PrinterSetup.PaperName = 'Lettre US (21,6 x 27,9 cm)'
    PrinterSetup.PrinterName = 'Default'
    PrinterSetup.mmMarginBottom = 6350
    PrinterSetup.mmMarginLeft = 6350
    PrinterSetup.mmMarginRight = 6350
    PrinterSetup.mmMarginTop = 6350
    PrinterSetup.mmPaperHeight = 279401
    PrinterSetup.mmPaperWidth = 215900
    PrinterSetup.PaperSize = 1
    Template.DatabaseSettings.DataPipeline = plItem
    Template.DatabaseSettings.NameField = 'Name'
    Template.DatabaseSettings.TemplateField = 'Template'
    Template.SaveTo = stDatabase
    DeviceType = 'Screen'
    OutlineSettings.CreateNode = True
    OutlineSettings.CreatePageNodes = True
    OutlineSettings.Enabled = False
    OutlineSettings.Visible = False
    TextSearchSettings.DefaultString = ''
    TextSearchSettings.Enabled = False
    Left = 289
    Top = 326
    Version = '7.01'
    mmColumnWidth = 0
    object ppHeaderBand1: TppHeaderBand
    mmBottomOffset = 0
    mmHeight = 13229
    mmPrintPosition = 0
    end
    object ppDetailBand1: TppDetailBand
    mmBottomOffset = 0
    mmHeight = 13229
    mmPrintPosition = 0
    end
    object ppFooterBand1: TppFooterBand
    mmBottomOffset = 0
    mmHeight = 13229
    mmPrintPosition = 0
    end
    object daDataModule1: TdaDataModule
    end
    end
    object dsFolder: TDataSource
    DataSet = sdsFolder
    Left = 44
    Top = 194
    end
    object ppReportExplorer1: TppReportExplorer
    Designer = ppDesigner1
    FolderFieldNames.FolderId = 'FOLDER_ID'
    FolderFieldNames.Name = 'NAME'
    FolderFieldNames.ParentId = 'PARENT_ID'
    FolderPipeline = plFolder
    ItemFieldNames.Deleted = 'DELETED'
    ItemFieldNames.FolderId = 'FOLDER_ID'
    ItemFieldNames.ItemId = 'ITEM_ID'
    ItemFieldNames.Modified = 'MODIFIED'
    ItemFieldNames.Name = 'NAME'
    ItemFieldNames.Size = 'ITEM_SIZE'
    ItemFieldNames.Template = 'TEMPLATE'
    ItemFieldNames.ItemType = 'ITEM_TYPE'
    ItemPipeline = plItem
    FormCaption = 'Report Explorer'
    FormIcon.Data = {
    0000010001002020100000000000E80200001600000028000000200000004000
    0000010004000000000080020000000000000000000000000000000000000000
    0000000080000080000000808000800000008000800080800000C0C0C0008080
    80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000884000000000000
    000083BBBBB34003BBBBB800000000000004BBBBBBBB308BBBBBBB0000000000
    00003BBBBBB3403BBBBBB3000000000000000BBBBBB404BBBBBB300000000000
    000003BBBBB008BBBBBB800000000000000003BBBBB003BBBBBB000000000000
    000003BBBBB48BBBBBB3000000000000000003BBBBBBBBBBBB30000000000000
    000003BBBBBBBBBBB800000000000000000003BBBBB33BBBBB80000000000000
    000003BBBBB003BBBBB4000000000000000003BBBBB003BBBBB8000000000000
    000003BBBBB003BBBBB300000000000000000BBBBBB84BBBBBB8000000000000
    00043BBBBBBBBBBBBBB00000000000000004BBBBBBBBBBBBB340000000000000
    0000433888883338400000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000FFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFF00
    603FFE00403FFF00403FFF80807FFF81807FFF8180FFFF8000FFFF8001FFFF80
    03FFFF8001FFFF8180FFFF8180FFFF8180FFFF8000FFFE0001FFFE0001FFFF00
    07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
    FormPosition = poScreenCenter
    FormHeight = 400
    FormLeft = 100
    FormTop = 50
    FormWidth = 600
    Left = 169
    Top = 234
    end
    object plFolder: TppDBPipeline
    DataSource = dsFolder
    RefreshAfterPost = True
    UserName = 'plFolder'
    Visible = False
    Left = 76
    Top = 195
    end
    object plItem: TppDBPipeline
    DataSource = dsItem
    RefreshAfterPost = True
    UserName = 'plItem'
    Visible = False
    Left = 77
    Top = 278
    end
    object plTable: TppDBPipeline
    DataSource = dsTable
    UserName = 'plTable'
    Visible = False
    Left = 84
    Top = 508
    end
    object plField: TppDBPipeline
    DataSource = dsField
    UserName = 'plField'
    Visible = False
    Left = 201
    Top = 510
    object plFieldppField1: TppField
    FieldAlias = 'TABLE_NAME'
    FieldName = 'TABLE_NAME'
    FieldLength = 60
    DisplayWidth = 60
    Position = 0
    end
    object plFieldppField2: TppField
    FieldAlias = 'FIELD_NAME'
    FieldName = 'FIELD_NAME'
    FieldLength = 60
    DisplayWidth = 60
    Position = 1
    end
    object plFieldppField3: TppField
    FieldAlias = 'FIELD_ALIAS'
    FieldName = 'FIELD_ALIAS'
    FieldLength = 60
    DisplayWidth = 60
    Position = 2
    end
    object plFieldppField4: TppField
    FieldAlias = 'DATATYPE'
    FieldName = 'DATATYPE'
    FieldLength = 60
    DisplayWidth = 60
    Position = 3
    end
    object plFieldppField5: TppField
    FieldAlias = 'SELECTABLE'
    FieldName = 'SELECTABLE'
    FieldLength = 1
    DisplayWidth = 1
    Position = 4
    end
    object plFieldppField6: TppField
    FieldAlias = 'SEARCHABLE'
    FieldName = 'SEARCHABLE'
    FieldLength = 1
    DisplayWidth = 1
    Position = 5
    end
    object plFieldppField7: TppField
    FieldAlias = 'SORTABLE'
    FieldName = 'SORTABLE'
    FieldLength = 1
    DisplayWidth = 1
    Position = 6
    end
    object plFieldppField8: TppField
    FieldAlias = 'AUTOSEARCH'
    FieldName = 'AUTOSEARCH'
    FieldLength = 1
    DisplayWidth = 1
    Position = 7
    end
    object plFieldppField9: TppField
    FieldAlias = 'MANDATORY'
    FieldName = 'MANDATORY'
    FieldLength = 1
    DisplayWidth = 1
    Position = 8
    end
    end
    object dsJoin: TDataSource
    DataSet = sdsJoin
    Left = 282
    Top = 510
    end
    object plJoin: TppDBPipeline
    DataSource = dsJoin
    UserName = 'plJoin'
    Visible = False
    Left = 312
    Top = 510
    object plJoinppField1: TppField
    FieldAlias = 'TABLE_NAME1'
    FieldName = 'TABLE_NAME1'
    FieldLength = 60
    DisplayWidth = 60
    Position = 0
    end
    object plJoinppField2: TppField
    FieldAlias = 'TABLE_NAME2'
    FieldName = 'TABLE_NAME2'
    FieldLength = 60
    DisplayWidth = 60
    Position = 1
    end
    object plJoinppField3: TppField
    FieldAlias = 'JOIN_TYPE'
    FieldName = 'JOIN_TYPE'
    FieldLength = 60
    DisplayWidth = 60
    Position = 2
    end
    object plJoinppField4: TppField
    FieldAlias = 'FIELD_NAMES1'
    FieldName = 'FIELD_NAMES1'
    FieldLength = 255
    DisplayWidth = 255
    Position = 3
    end
    object plJoinppField5: TppField
    FieldAlias = 'OPERATORS'
    FieldName = 'OPERATORS'
    FieldLength = 60
    DisplayWidth = 60
    Position = 4
    end
    object plJoinppField6: TppField
    FieldAlias = 'FIELD_NAMES2'
    FieldName = 'FIELD_NAMES2'
    FieldLength = 255
    DisplayWidth = 255
    Position = 5
    end
    end
    object euSQLConnection: TSQLConnection
    DriverName = 'Interbase'
    GetDriverFunc = 'getSQLDriverINTERBASE'
    LibraryName = 'dbexpint.dll'
    LoginPrompt = False
    Params.Strings = (

    'Database=C:\Program Files\Fichiers communs\Borland Shared\Data\e' +
    'mployee.gdb'
    'RoleName=RoleName'
    'User_Name=sysdba'
    'Password=masterkey'
    'ServerCharSet='
    'SQLDialect=1'
    'BlobSize=-1'
    'CommitRetain=False'
    'WaitOnLocks=True'
    'ErrorResourceFile='
    'LocaleCode=0000'
    'Interbase TransIsolation=ReadCommited'
    'Trim Char=False')
    VendorLib = 'gds32.dll'
    Connected = True
    Left = 288
    Top = 232
    end
    object sdsFolder: TSimpleDataSet
    Aggregates = <>
    Connection = euSQLConnection
    DataSet.CommandText = 'select * from rb_folder'
    DataSet.MaxBlobSize = -1
    DataSet.Params = <>
    Params = <>
    Left = 14
    Top = 193
    end
    object sdsItem: TSimpleDataSet
    Active = True
    Aggregates = <>
    Connection = euSQLConnection
    DataSet.CommandText = 'select * from rb_item'
    DataSet.MaxBlobSize = -1
    DataSet.Params = <>
    Params = <>
    Left = 15
    Top = 278
    end
    object sdsTable: TSimpleDataSet
    Active = True
    Aggregates = <>
    Connection = euSQLConnection
    DataSet.CommandText = 'select * from rb_table'
    DataSet.MaxBlobSize = -1
    DataSet.Params = <>
    Params = <>
    Left = 23
    Top = 506
    end
    object sdsField: TSimpleDataSet
    Active = True
    Aggregates = <>
    Connection = euSQLConnection
    DataSet.CommandText = 'select * from rb_field'
    DataSet.MaxBlobSize = -1
    DataSet.Params = <>
    Params = <>
    Left = 139
    Top = 509
    end
    object sdsJoin: TSimpleDataSet
    Active = True
    Aggregates = <>
    Connection = euSQLConnection
    DataSet.CommandText = 'select * from rb_join'
    DataSet.MaxBlobSize = -1
    DataSet.Params = <>
    Params = <>
    Left = 251
    Top = 510
    end
    end
  • edited March 2003
    I remember you were altering the dbExpress DADE plugin source when you were
    debugging it. The only thing I can think of at this point is that perhaps
    you made other changes to RBuilder\Source that breaks the non-datadictionary
    version of the plugin? Now that GetTableNames is working, perhaps make sure
    that your library path is pointed to the installed RBuilder\Lib's dcu's and
    that you are using the installed RB7 version of the DBExpress DADE plugin.


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited March 2003
    Yes the originals files are now in the library path and I still have the
    same datadictionary problem.

    I have it with :

    dbExpress/Interbase
    IBExpress/Interbase
    BDE/Interbase
    BDE/Paradox

    I didn't check yet the others

    Thanks

    Marc
  • edited March 2003
    Hello,
    Can the query designer build sql statement like this ?

    Select A from X where A In (Select A in Y where B...) ?

    Have you got infos about the datadictionary ?
    Thanks
    Regards

    Marc
  • edited March 2003
    All of our demos work with the data dictionary. We have tested them on
    various operating systems, using different printers and different versions
    of Delphi. The four you have listed below work without problems here using
    the data dictionary. At this point, I want to know the exact steps you take
    in order to reproduce the problem. Use our out-of-the-box Autojoin
    BDE/Paradox End Used demo project. Perhaps there are multiple databases with
    the rb end user tables and that they have different entries in the data
    dictionaries. Search your hard drive for the Employye.gdb and the rb*.db
    Paradox tables.

    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited March 2003
    No, the current query designer checks the value type of the criteria that
    you enter for the search criteria. You'll have to edit the SQL text to
    perform this query in DADE.


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited March 2003
    Sorry Jim but I have already tried to intall completly D7 on another
    partition of my hard drive (w98 as the primary one) and
    installed RB.
    I ran the script located in the Interbase demo dir (there is by another way
    a little problem with it because the ITEM_ID_GEN generator already exists in
    the employee.gdb sample database)
    and simply ran the dbExpress/Interbase demo.
    At run time I can't switch between use/not use the datadictionary :
    It seems that the Tables names and the Fields Names are not refreshed in the
    QueryWizard and the QueryDesigner.
    Because I had not enough time today no more tests have been made.

    Cheers
    Marc
  • edited March 2003
    Ok, I mistook what you were trying to accomplish. Yes, if you want to change
    the use of the data dictionary at runtime, you have to clear the meta data
    cache. The meta data cache is what is used to hit the database to retrieve
    the tablenames and store them in a cache. Then as you select tables, RB
    retrieves the field names for the table and stores them as well in the meta
    data cache. To clear this in RB 7 you should be able to call
    gMetaDataManager.Clear. This singleton is located in the daMetaDataManager
    unit. This should cause the meta data cache to be refreshed the next time
    you launch the designer at runtime. You shouldn't change this while the
    designer is active. so you should shut the designer down, clear the cache,
    then relaunch the designer. That should do the trick.


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited March 2003
    Hi,
    Many thanks it works well now.
    Regards
    Marc
This discussion has been closed.