sqldatabaseadvantage-database-server

Advantage Server: explore a table in database


Advantage Server 11.0

I use Data Architect and login as ADSSYS.

I create a table

CREATE TABLE bbimp(TEXT NChar(255)) IN DATABASE;

Then I execute second time to be sure the table exists

CREATE TABLE bbimp(TEXT NChar(255)) IN DATABASE;

and get an awaited message

poQuery: Error 7200:  AQE Error:  State = S0000;   NativeError = 2010;  [iAnywhere Solutions][Advantage SQL Engine][ISAM]ISAM table already exists

Then I try to know if it exists without the error:

SELECT * from system.tables where name='bbimp';

But result set contains 0 records.

How can I get to know if the table in database exists?

  1. when I execute SQL

    select * from bbimp
    

I get an error:

poQuery: Error 7200:  AQE Error:  State = HY000;   NativeError = 5159;  [iAnywhere Solutions][Advantage SQL][ASA] Error 5159:  Error encountered when trying to open a database table.  The table is a database table. It cannot be opened as a free table. Table name: bbimp
  1. I have a file of the table at

    C:\Users\Public\Documents\AgroWinDaten\Daten\bbimp.adt
    

Solution

  • Selecting from system.tables (in fact all the system. tables) only works for dictionary based connections, not for free connections.

    Also you can't query a dictionary based table from a free connection.

    If you don't understand the difference, you should look at this question:

    What is difference between the Adavanstage Database Sever free table and Advanstage databaseSever Normal table