Mega Search
23.2 Million


Sign Up

Make a donation  
Error on open XE5 project on XE6 [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express

When I try to open a XE5 project with Delphi XE6, I get the error "unavailable database".
Any ideas? I'm using IBX to connect to Interbase databases.

If I clean from TIBDatabase, in designtime, the Databasename property, I will get "Database name is missing".
I'm not connect to the database in designtime.

Edited by: Carlos Matos on Apr 22, 2014 6:48 AM

Vote for best question.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 9:50 AM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Carlos Matos wrote:}{quote}
> When I try to open a XE5 project with Delphi XE6, I get the error "unavailable database".
> Any ideas? I'm using IBX to connect to Interbase databases.
> 
> If I clean from TIBDatabase, in designtime, the Databasename property, I will get "Database name is missing".
> I'm not connect to the database in designtime.
> 
> Edited by: Carlos Matos on Apr 22, 2014 6:48 AM

Ok, I think I found what's happening.
In designtime, the TIBDatabase.DatabaseName property is set to a database that does not exists (test purposes) and when I load the project with XE6,
the IDE is putting IBDatabase.Connected property to True, even though it's False in designtime.
If I change DatabaseName property to a database that do exists, leave Connected to False, save the project, close project and open project again, the Connected property is True again.
With a new project this doesn't happen.

Jeff, any ideas?

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 11:30 AM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> Carlos Matos wrote:
> >> {quote:title=Carlos Matos wrote:}{quote}
> >> When I try to open a XE5 project with Delphi XE6, I get the error "unavailable database".
> >> Any ideas? I'm using IBX to connect to Interbase databases.
> >>
> >> If I clean from TIBDatabase, in designtime, the Databasename property, I will get "Database name is missing".
> >> I'm not connect to the database in designtime.
> >>
> >> Edited by: Carlos Matos on Apr 22, 2014 6:48 AM
> > 
> > Ok, I think I found what's happening.
> > In designtime, the TIBDatabase.DatabaseName property is set to a database that does not exists (test purposes) and when I load the project with XE6,
> > the IDE is putting IBDatabase.Connected property to True, even though it's False in designtime.
> > If I change DatabaseName property to a database that do exists, leave Connected to False, save the project, close project and open project again, the Connected property is True again.
> > With a new project this doesn't happen.
> > 
> > Jeff, any ideas?
> 
> Save it off with it not connected then look at the DFM in a text editor.  What 
> does it show?  (if it is false the connected property shouldn't even be there as 
> that is the default.  No changes were made in this area so not certain why this 
> is occurring and in particular why in upgraded projects and not in new ones.

Save it off with not connected = false, pressed alt+f12 to see DFM in text mode. The connected property is not there.
Than pressed alt+f12 to go to design mode and connected is true again. If I press alt+f12 again, property connected is there (DFM text mode) and is set to true.
Definetly something wrong in here. Very strange.
> 
> The unavailable database can also be caused by trying a local connection, but 
> the IB_Protocol environment variable (Tools | Environment Variables), which will 
> be set to usually something other than gds_db, but that server is not running.

I can't found any IB_Protocol variable on Tools | Environment Variables. Must I set it? What to?

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 12:02 PM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> 
> Post the text version of the component.
> 

InterbaseExpress 17.17
gds32.dll is version 11.0

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 12:20 PM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> Carlos Matos wrote:
> >> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> >>
> >> Post the text version of the component.
> >>
> > 
> > InterbaseExpress 17.17
> > gds32.dll is version 11.0
> 
> No I meant when you viewed the dfm as text, post the Database components section.
> 

  object DBEmpresas: TIBDatabase
    Connected = True
    DatabaseName = 'localhost/3051:E:\Executaveis\Fac2011\Empresas\EMPRESA.IB'
    Params.Strings = (
      'user_name=SYSDBA'
      'password=1'
      'lc_ctype=ISO8859_1')
    LoginPrompt = False
    ServerType = 'IBServer'
    AfterConnect = DBEmpresasAfterConnect
    AfterDisconnect = DBEmpresasAfterDisconnect
    Left = 569
    Top = 108
  end

The Connected is there because of what I tell you. It shouldn't be there because on the Object Inspector is set to False.

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 12:25 PM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit] [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> Carlos Matos wrote:
> >> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> >> Carlos Matos wrote:
> >>>> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> >>>>
> >>>> Post the text version of the component.
> >>>>
> >>> InterbaseExpress 17.17
> >>> gds32.dll is version 11.0
> >> No I meant when you viewed the dfm as text, post the Database components section.
> >>
> > 
> >   object DBEmpresas: TIBDatabase
> >     Connected = True
> >     DatabaseName = 'localhost/3051:E:\Executaveis\Fac2011\Empresas\EMPRESA.IB'
> >     Params.Strings = (
> >       'user_name=SYSDBA'
> >       'password=1'
> >       'lc_ctype=ISO8859_1')
> >     LoginPrompt = False
> >     ServerType = 'IBServer'
> >     AfterConnect = DBEmpresasAfterConnect
> >     AfterDisconnect = DBEmpresasAfterDisconnect
> >     Left = 569
> >     Top = 108
> >   end
> > 
> > The Connected is there because of what I tell you. It shouldn't be there because on the Object Inspector is set to False.
> 
> So it was false before you did the lat-F12.  Any IBQueries on this connection?
> 

Yes but they are closed, active property is set to false. 
The example that I have shows easily this.

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 12:46 PM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit] [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> Carlos Matos wrote:
> > 
> > Yes but they are closed, active property is set to false. 
> > The example that I have shows easily this.
> 
> This is a side effect of the same bug that gives you the database name error (It 
> has to do with the IBQuery trying to prepare the dataset when the streaming is 
> calling ParamCount, when it prepares it automatically turns on the connection). 
>   If you set AllowStreamedConnected to false is that a good enough workaround 
> for now?  When you run your app the connected property is ignored during streaming.
> 
If I set AllowStreamedConnected to False the same happens, doesn't work.
Any other idea?

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 1:04 PM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit] [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> Carlos Matos wrote:
> > If I set AllowStreamedConnected to False the same happens, doesn't work.
> > Any other idea?
> 
> AllowStreamedConnected set to false will still at design time stream out true 
> and at design time the connection is made when you open the project.  When you 
> run the project though it will be as if you saved it off Connected := false. 
> Are you saying when you run it it is connected?

When I run the application everything is set to False, database and query.
I only open the database and the query after pressing a button.
In designtime everything is set to false also.

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 1:12 PM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit] [Edit] [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> Carlos Matos wrote:
> >> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> >> Carlos Matos wrote:
> >>> If I set AllowStreamedConnected to False the same happens, doesn't work.
> >>> Any other idea?
> >> AllowStreamedConnected set to false will still at design time stream out true 
> >> and at design time the connection is made when you open the project.  When you 
> >> run the project though it will be as if you saved it off Connected := false. 
> >> Are you saying when you run it it is connected?
> > 
> > When I run the application everything is set to False, database and query.
> > I only open the database and the query after pressing a button.
> > In designtime everything is set to false also.
> 
> What I am asking is even with AllowStreamedConnected set to false when you run 
> you app is the connection made?   It shouldn't be.  

No it is not.
The problem it's not when running the app. The app only connects to the database when I press a button, either AllowStreamedConnected is set to true or false.
This only happens when openning the project. And the IDE goes crazy. Have to shut it down.

> The only fix is an updated 
> IBXpress200.bpl.  while there isn't a workaround at design time without that 
> (iow if you use TIBQuery Connected is goign to be set true in hte dfm when it 
> gets streamed out) I am trying to see if AllowStreamedConnected set to false 
> gives you the same behavior at runtime (the IBDatabase's connected is false). 
> It should.
> 

with AllowStreamedConnected set to false in designtime, the same happens when open the project.
The only way to not get this error is to clean IBQuery.SQL property and set it in runtime.
This is annoying because I have too many projects with querys loaded in designtime.
Either way, after compilation, the application runs ok. The application isn't trying to connect like when openning the project.

Edited by: Carlos Matos on Apr 22, 2014 10:37 AM

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 1:38 PM EST
From: Carlos Matos
 
Re: Error on open XE5 project on XE6 [Edit] [Edit] [Edit]  
News Group: embarcadero.public.delphi.database.interbase_express
> {quote:title=Jeff Overcash (TeamB) wrote:}{quote}
> Carlos Matos wrote:
> > 
> > with AllowStreamedConnected set to false in designtime, the same happens when open the project.
> > The only way to not get this error is to clean IBQuery.SQL property and set it in runtime.
> > This is annoying because I have too many projects with querys loaded in designtime.
> > Either way, after compilation, the application runs ok. The application isn't trying to connect like when openning the project.
> > 
> > Edited by: Carlos Matos on Apr 22, 2014 10:37 AM
> 
> I have asked for permission to put a hotfix bpl up on CodeCentral and am waiting 
> on permission.  The design time behavior can not be worked around.  You must 
> have a new run time bpl to get the IBQuery bug streaming bug (that has the side 
> effect of setting the connection to true) fixed.
> 
> AllowStreamedConnected will allow it to look like it was streamed out as false 
> when you app runs, but hte whole point of that property is to at design time 
> always stream the connected property exactly as the dfm states, but at run time 
> allow it to act as if connected is false.  This allows you to design against a 
> test database and not have to remember to set connected to false before running 
> and setting the connection to the real database you want to run against.
> 
> -- 
> Jeff Overcash (TeamB)
>        (Please do not email me directly unless  asked. Thank You)
> And so I patrol in the valley of the shadow of the tricolor
> I must fear evil. For I am but mortal and mortals can only die.
> Asking questions, pleading answers from the nameless
> faceless watchers that stalk the carpeted  corridors of Whitehall.
>               (Fish)

Ok Jeff, I'll wait for the fixes.
Thanks a lot.

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 22-Apr-2014, at 1:55 PM EST
From: Carlos Matos