Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 13 total
Thread kbmmw / EDB setup problems
Thu, Oct 18 2007 12:53 AMPermanent Link

"Harry de Boer"
LS

I am trying to make kbmmw (Components4Deveopers) to work with EDB
(Elevatesoft). I built a server with a queryservice and start it. When I try
to query from a clientapp I get the RemoteLogin dialog. I enter the default
values, and then get the "there must be at least one field error". What can
cause this?

I think I set up things properly, but I don't know for sure; here is the
(parts that matter) setup of the server

 object Server: TkbmMWServer
 object SessiePool: TkbmMWPooledSession
   ConnectionPool = EDBConnectionPool
   SessionName = 'sesPool'
 object Transport: TkbmMWTCPIPIndyServerTransport
   Server = Server
   StreamFormat = 'ZIPPED'
   VerifyTransfer = True
 object EDBMetaData: TkbmMWEDBMetaData
 object EDBConnectionPool: TkbmMWEDBConnectionPool
   MetaData = EDBMetaData
   Database = EDBDatabase
   Session = EDBSession
 object EDBDatabase: TEDBDatabase
   DatabaseName = 'EDBdatabase'
   Database = 'VOC'
   SessionName = 'EDBSessie'
 object EDBSession: TEDBSession
   LoginUser = 'Administrator'
   LoginPassword = 'EDBDefault'
   SessionName = 'EDBSessie'
 object EDBEngine: TEDBEngine
   BeforeStart = EDBEngineBeforeStart
 object EDBConfigQuery: TEDBQuery
   DatabaseName = 'Configuration'
   SessionName = 'EDBSessie'
 end

procedure TformServer.StartServer;
var
 tekst, dbpad, poort : string;
begin
 memoIni.LoadFromFile('VOC_Server.ini');
 poort := iniControl.ReadString('Transport','BindingsPort','4000');
 dbpad := iniControl.ReadString('Database','Path','');
 //Check database directory
 if not fileexists(dbpad + '\_Staaf.EDBTbl') then begin
   tekst := 'Database pad is onjuist , Server kan niet worden gestart!';
   MsgBox(Application.Title, tekst, MB_OK + MB_ICONWARNING);
   Exit;
 end;
 //Make database
 with EDBConfigQuery do begin
   SQL.Text:='SELECT * FROM Databases WHERE
Name='+Engine.QuotedSQLStr('VOC');
   Open;
   if (RecordCount=0) then begin
     Close;
     SQL.Text:='CREATE DATABASE "VOC" PATH '+
     Engine.QuotedSQLStr(ExtractFilePath(dbpad));
     ExecSQL;
   end;
 end;
 Transport.Bindings.Items[0].Port := strToInt(poort);
 EDBConnectionPool.MaxConnections :=
strToInt(iniControl.ReadString('ConnectionPool','MaxConnections','5'));
 EDBConnectionPool.ConnectionInactivityTimeout :=
strToInt(iniControl.ReadString('ConnectionPool','ConnectionInactivityTimeout
','0'));
 Server.Active := TRUE;
end;

The server runs and with a clientapp I can connect (no connection error) and
I can reach the queryservice on the server (otherwise an error would occur).
But then I get the before mentioned behavior (password dialog - don't want
that) and the error.


D6, EDB 1.05, kbmmw 2.80.00

Send to components4developers and elevatesoft newsgroups - topic of thread:
kbmmw / EDB setup problems

Regards, Harry

Thu, Oct 18 2007 1:10 AMPermanent Link

"Kim Madsen"
Hi,

As reply from the post in our kbmMW ngs:

> I am trying to make kbmmw (Components4Deveopers) to work with EDB
> (Elevatesoft). I built a server with a queryservice and start it. When I
> try
> to query from a clientapp I get the RemoteLogin dialog. I enter the
> default
> values, and then get the "there must be at least one field error". What
> can
> cause this?

This indicate an invalid SQL statement that results in no fields when you
are trying to open a query.

> The server runs and with a clientapp I can connect (no connection error)
> and
> I can reach the queryservice on the server (otherwise an error would
> occur).
> But then I get the before mentioned behavior (password dialog - don't want
> that) and the error.

This is how I prepare access to a EDB database from a standard kbmMW demo
application server:

    kbmMWServer1.RegisterService(TkbmMWInventoryService,false);
    kbmMWServer1.RegisterServiceByName('KBMMW_QUERY',TTestQuery,false);


    // Set the data path
    EDBEngine1.ConfigPath:=ExtractFilePath(Application.ExeName);
    EDBEngine1.ConfigName:='EDBConfig';
    EDBEngine1.TempTablesPath:=EDBEngine1.GetTempTablesPath;
    EDBEngine1.EngineType:=etClient;
    EDBEngine1.Open;

    // Set the default login info.
    EDBSession1.LoginUser:='Administrator';
    EDBSession1.LoginPassword:='EDBDefault';

    // Create database in the local configuration, pointing to the tables
already available.
    if kbmMWEDBConnectionPool1.MetaExists(mwmdtDatabase,'DEMO',b) and (not
b) then
    begin
         dbDef:=TkbmMWDatabaseDef.Create;
         try
            dbDef.Path:=IncludeTrailingBackslash(EDBEngine1.ConfigPath)+'data\';
            kbmMWEDBConnectionPool1.MetaCreate(mwmdtDatabase,'DEMO',dbDef);
         finally
            dbDef.Free;
         end;
    end;

    EDBDatabase1.DatabaseName:='DEMO';
    EDBDatabase1.Database:='DEMO';

And the relevant components:

 object EDBDatabase1: TEDBDatabase
   SessionName = 'EDBSession1_1'
   Left = 448
 end
 object kbmMWEDBConnectionPool1: TkbmMWEDBConnectionPool
   MaxConnections = 10
   MetaData = kbmMWEDBMetaData1
   Database = EDBDatabase1
   Session = EDBSession1
   Left = 488
 end
 object EDBSession1: TEDBSession
   AutoSessionName = True
   RemoteAddress = '127.0.0.1'
   RemotePort = 12001
   RemoteTimeout = 300
   RemotePing = False
   Left = 488
   Top = 32
 end
 object EDBEngine1: TEDBEngine
   Signature = 'edb_signature'
   EncryptionPassword = 'elevatesoft'
   LicensedSessions = 4096
   ConfigPath = '.\DATA'
   ConfigName = 'EDBConfig'
   ConfigExtension = '.EDBCfg'
   LockExtension = '.EDBLck'
   LogExtension = '.EDBLog'
   MaxLogFileSize = 1048576
   LogCategories = [lcInformation, lcWarning, lcError]
   CatalogName = 'EDBDatabase'
   CatalogExtension = '.EDBCat'
   BackupExtension = '.EDBBkp'
   TableExtension = '.EDBTbl'
   TableIndexExtension = '.EDBIdx'
   TableBlobExtension = '.EDBBlb'
   TempTablesPath = 'C:\DOCUME~1\STEVEF~1\LOCALS~1\Temp\'
   ServerName = 'EDBSrvr'
   ServerDescription = 'ElevateDB Server'
   ServerAuthorizedAddresses.Strings = (
     '*')
   Left = 408
 end
 object kbmMWEDBMetaData1: TkbmMWEDBMetaData
   FieldNameQuote = '"'
   FieldNameCase = kbmmwncUnaltered
   TableNameQuote = '"'
   TableNameCase = kbmmwncUnaltered
   QuoteAllFieldNames = True
   QuoteTableName = True
   StringQuote = ''''
   QuoteStringQuote = ''''
   DateLayout = '"yyyy-mm-dd"'
   TimeLayout = 'hh:mm:ss.zzz'
   DateTimeLayout = '"yyyy-mm-dd" hh:mm:ss.zzz'
   TrueValue = 'TRUE'
   FalseValue = 'FALSE'
   PrependTableName = False
   Left = 448
   Top = 72
 end

I dont get any logon dialogs etc.

--
best regards
Kim Madsen
kbm@components4developers.com
www.components4developers.com

www.myc4d.com - Your access to cool code
blogs.myc4d.com - Your access to code tidbits and comments

The best components for the best developers
Application server enabling technology for developers


"Harry de Boer" <harry@staaf.nl> skrev i en meddelelse
news:C812165D-FD2B-4BBA-83C6-C3A33ED324F4@news.elevatesoft.com...
> LS
>
> I am trying to make kbmmw (Components4Deveopers) to work with EDB
> (Elevatesoft). I built a server with a queryservice and start it. When I
> try
> to query from a clientapp I get the RemoteLogin dialog. I enter the
> default
> values, and then get the "there must be at least one field error". What
> can
> cause this?

Sun, Oct 21 2007 9:09 AMPermanent Link

"Harry de Boer"
Tim,

After trying the kbbmw middleware with EDB Kim came up with the following.

> Yes... I tried it out... but alas not with success.
> It generated an almost 3gb big temporary table when I did an invalid query
> on it, and then ran out of space for the temp table. Elevate DB error
> #407.... EDBBlb

Perhaps you could figure out what's gining wrong?

See also the posts in the kbmmw ng.

Regards, Harry

> Yes... I tried it out... but alas not with success.
> It generated an almost 3gb big temporary table when I did an invalid query
> on it, and then ran out of space for the temp table. Elevate DB error
> #407.... EDBBlb
>


"Harry de Boer" <harry@staaf.nl> schreef in bericht
news:C812165D-FD2B-4BBA-83C6-C3A33ED324F4@news.elevatesoft.com...
> LS
>
> I am trying to make kbmmw (Components4Deveopers) to work with EDB
> (Elevatesoft). I built a server with a queryservice and start it. When I
try
> to query from a clientapp I get the RemoteLogin dialog. I enter the
default
> values, and then get the "there must be at least one field error". What
can
> cause this?
>
> I think I set up things properly, but I don't know for sure; here is the
> (parts that matter) setup of the server
>
>   object Server: TkbmMWServer
>   object SessiePool: TkbmMWPooledSession
>     ConnectionPool = EDBConnectionPool
>     SessionName = 'sesPool'
>   object Transport: TkbmMWTCPIPIndyServerTransport
>     Server = Server
>     StreamFormat = 'ZIPPED'
>     VerifyTransfer = True
>   object EDBMetaData: TkbmMWEDBMetaData
>   object EDBConnectionPool: TkbmMWEDBConnectionPool
>     MetaData = EDBMetaData
>     Database = EDBDatabase
>     Session = EDBSession
>   object EDBDatabase: TEDBDatabase
>     DatabaseName = 'EDBdatabase'
>     Database = 'VOC'
>     SessionName = 'EDBSessie'
>   object EDBSession: TEDBSession
>     LoginUser = 'Administrator'
>     LoginPassword = 'EDBDefault'
>     SessionName = 'EDBSessie'
>   object EDBEngine: TEDBEngine
>     BeforeStart = EDBEngineBeforeStart
>   object EDBConfigQuery: TEDBQuery
>     DatabaseName = 'Configuration'
>     SessionName = 'EDBSessie'
>   end
>
> procedure TformServer.StartServer;
> var
>   tekst, dbpad, poort : string;
> begin
>   memoIni.LoadFromFile('VOC_Server.ini');
>   poort := iniControl.ReadString('Transport','BindingsPort','4000');
>   dbpad := iniControl.ReadString('Database','Path','');
>   //Check database directory
>   if not fileexists(dbpad + '\_Staaf.EDBTbl') then begin
>     tekst := 'Database pad is onjuist , Server kan niet worden gestart!';
>     MsgBox(Application.Title, tekst, MB_OK + MB_ICONWARNING);
>     Exit;
>   end;
>   //Make database
>   with EDBConfigQuery do begin
>     SQL.Text:='SELECT * FROM Databases WHERE
> Name='+Engine.QuotedSQLStr('VOC');
>     Open;
>     if (RecordCount=0) then begin
>       Close;
>       SQL.Text:='CREATE DATABASE "VOC" PATH '+
>       Engine.QuotedSQLStr(ExtractFilePath(dbpad));
>       ExecSQL;
>     end;
>   end;
>   Transport.Bindings.Items[0].Port := strToInt(poort);
>   EDBConnectionPool.MaxConnections :=
> strToInt(iniControl.ReadString('ConnectionPool','MaxConnections','5'));
>   EDBConnectionPool.ConnectionInactivityTimeout :=
>
strToInt(iniControl.ReadString('ConnectionPool','ConnectionInactivityTimeout
> ','0'));
>   Server.Active := TRUE;
> end;
>
> The server runs and with a clientapp I can connect (no connection error)
and
> I can reach the queryservice on the server (otherwise an error would
occur).
> But then I get the before mentioned behavior (password dialog - don't want
> that) and the error.
>
>
> D6, EDB 1.05, kbmmw 2.80.00
>
> Send to components4developers and elevatesoft newsgroups - topic of
thread:
> kbmmw / EDB setup problems
>
> Regards, Harry
>
>

Mon, Oct 22 2007 2:19 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Harry,

<< Perhaps you could figure out what's gining wrong? >>

What is "it" in this case ?  A particular query ?

--
Tim Young
Elevate Software
www.elevatesoft.com

Mon, Oct 22 2007 2:53 PMPermanent Link

"Harry de Boer"
Tim,

Well no, not quite. It is a simple 'select * from aanhef' statement, nothing
fancy about it. 'Aanhef'  is a table with two fields and 82 rows. The error
occurs because a temp table seems to be made and it exceeds the max limit
for a file. The strange thing is that it don't happen with EDBmngr but from
the testapps (client and server) that comes with kbmmw 2.8.0 the error
occurs. This takes already more then a day of my time and it's driving me
mad :0 (well no, not really ofcourse, I'm still making sense I hope), but I
want to start a project (kbmmw/dbisam replacement) -planned start is
tommorow Frownand this is stopping me from further development right now. Do
you have any idea what can cause this error?

Regards, Harry


"Tim Young [Elevate Software]" <timyoung@elevatesoft.com> schreef in bericht
news:1D8BCACD-5385-4D13-AE7A-A0E1C5E6AFE3@news.elevatesoft.com...
> Harry,
>
> << Perhaps you could figure out what's gining wrong? >>
>
> What is "it" in this case ?  A particular query ?
>
> --
> Tim Young
> Elevate Software
> www.elevatesoft.com
>
>

Mon, Oct 22 2007 3:12 PMPermanent Link

Eryk Bottomley
Harry

> Well no, not quite. It is a simple 'select * from aanhef' statement, nothing
> fancy about it. 'Aanhef'  is a table with two fields and 82 rows. The error
> occurs because a temp table seems to be made and it exceeds the max limit
> for a file.


How big is the table? Also:

>>Yes... I tried it out... but alas not with success.
>> It generated an almost 3gb big temporary table when I did an invalid
>>query
>> on it, and then ran out of space for the temp table. Elevate DB error
>> #407.... EDBBlb

What does "an invalid query" mean? It is perfectly possible to trash
almost any DB engine with averaged sized tables if one starts throwing
around cartesian product queries (for example).

Eryk
Mon, Oct 22 2007 3:48 PMPermanent Link

"Harry de Boer"
Eryk,

The table 'Aanhef' is a small table with two fields and 82 rows

the Aanhef.EDBtbl file is 21.632 bytes
the Aanhef.EDBIdx is 12.288 bytes

Fields
Id_Aanhef VARCHAR(10)
Aanhef VARCHAR(20)

> What does "an invalid query" mean? It is perfectly possible to trash
> almost any DB engine with averaged sized tables if one starts throwing
> around cartesian product queries (for example).

I guess that's a question to Tim?

Regards, Harry



"Eryk Bottomley" <no@way.com> schreef in bericht
news:49E06A37-11A9-4624-B4BC-C6D0191C7B5C@news.elevatesoft.com...
> Harry
>
> > Well no, not quite. It is a simple 'select * from aanhef' statement,
nothing
> > fancy about it. 'Aanhef'  is a table with two fields and 82 rows. The
error
> > occurs because a temp table seems to be made and it exceeds the max
limit
> > for a file.
>
>
> How big is the table? Also:
>
>  >>Yes... I tried it out... but alas not with success.
>  >> It generated an almost 3gb big temporary table when I did an invalid
>  >>query
>  >> on it, and then ran out of space for the temp table. Elevate DB error
>  >> #407.... EDBBlb
>
> What does "an invalid query" mean? It is perfectly possible to trash
> almost any DB engine with averaged sized tables if one starts throwing
> around cartesian product queries (for example).
>
> Eryk

Mon, Oct 22 2007 4:29 PMPermanent Link

Eryk Bottomley
Harry

>> What does "an invalid query" mean? It is perfectly possible to trash
>> almost any DB engine with averaged sized tables if one starts throwing
>> around cartesian product queries (for example).
>
> I guess that's a question to Tim?


No, it was in reference to whoever wrote:

"Yes... I tried it out... but alas not with success.
> It generated an almost 3gb big temporary table when I did an invalid
query
> on it, and then ran out of space for the temp table. Elevate DB error
> #407.... EDBBlb"

....which you then quoted. The reference to 'EDBBlb' seems to indicate
that there is BLOB/Memo data involved and the term 'invalid query' isn't
clarified. The query you mentioned ('select * from aanhef') clearly
isn't invalid since it works in the manager utility so either a
different query is involved above or the middleware is creating queries
of its own behind the scenes (maybe to extract metadata or something).

Aside from a bug in the EDB engine the other obvious contender for a
disk munching result set like that would be a badly constructed
cartesian product query against tables containing BLOBs ...which most
(all?) of the metadata tables do.

Eryk
Mon, Oct 22 2007 4:39 PMPermanent Link

"Harry de Boer"
Eryk,

I see. I will contact Kim (Components4Developers - kbmmw) Madsen with this
info, en let him try with a valid statement. Thanks.

Regards, Harry

"Eryk Bottomley" <no@way.com> schreef in bericht
news:A4D3ABFE-9A1D-421D-A110-5D59FEDAD95D@news.elevatesoft.com...
> Harry
>
> >> What does "an invalid query" mean? It is perfectly possible to trash
> >> almost any DB engine with averaged sized tables if one starts throwing
> >> around cartesian product queries (for example).
> >
> > I guess that's a question to Tim?
>
>
> No, it was in reference to whoever wrote:
>
> "Yes... I tried it out... but alas not with success.
>  > It generated an almost 3gb big temporary table when I did an invalid
> query
>  > on it, and then ran out of space for the temp table. Elevate DB error
>  > #407.... EDBBlb"
>
> ...which you then quoted. The reference to 'EDBBlb' seems to indicate
> that there is BLOB/Memo data involved and the term 'invalid query' isn't
> clarified. The query you mentioned ('select * from aanhef') clearly
> isn't invalid since it works in the manager utility so either a
> different query is involved above or the middleware is creating queries
> of its own behind the scenes (maybe to extract metadata or something).
>
> Aside from a bug in the EDB engine the other obvious contender for a
> disk munching result set like that would be a badly constructed
> cartesian product query against tables containing BLOBs ...which most
> (all?) of the metadata tables do.
>
> Eryk

Mon, Oct 22 2007 5:05 PMPermanent Link

Eryk Bottomley
Harry,

> I see. I will contact Kim (Components4Developers - kbmmw) Madsen with this
> info,


I would class it as "wild speculation" rather than "info". I don't use
either ElevateDB or the memtable stuff ...I'm just making a guesses
based on general principles.

Eryk
Page 1 of 2Next Page »
Jump to Page:  1 2
Image