Table - FieldDefs



  • Folgendes, ich erstelle über FieldDefs->Add meine Attribute meiner Tabelle.

    Ich möchte nun das Attribut "kd_nr" als autoincrement setzen:

    Table1->FieldDefs->Add("kd_nr", ftAutoInc, 0, false);

    Nur leider wird keine autoincrement ausgeführt, obwohl (my)SQL das ja sehr wohl unterstützt. Was mache ich falsch, habe ich die falschen Parameter gesetzt?



  • Hi,

    Mit diesen Methoden arbeite ich zwar nicht,
    Du kannst aber eine TQuery Instanz anlegen und einen SQL Befehl absetzen etwa so:

    TQuery *query=new TQuery(this);
    query->DatabaseName="DeinAliasName";
    query->SQL->Clear();
    query->SQL->Add("create table t_hardware(nr autoinc,seriennr CHAR(30),primary key(nr))");
    query->ExecSQL();

    //Heap Freigeben
    delete query;

    epidemic



  • Hab nochmal ein andere Frage und zwar soll mein Programm erkennen ob eine bestimmte Datenbank vorhanden ist. Falls nicht soll diese erstellt werden.

    Da bin ich mir nur nicht sicher wie ich das bewerkstelligen soll.

    In SQL wäre es ja folgender Befehlsaufruf:
    CREATE DATABASE name

    Kann mir einer erklären wie man die vorhandenen Datenbanken abfragt, bevor man sich zu einer verbindet?



  • hi,

    für solche Abfragen musst Du die BDE-API verwenden um die Konfigurationsinfo der BDE aus der Datei idapi.cfg zu lesen.

    //---------------------------------------------------------------------------
    void __fastcall TForm1::GetDatabaseList(TStrings *liste)
    {
      hDBICur   dbCursor;
      DBDesc    Database;
      DBIResult Result;
    
      liste->Clear();
    
      Check(DbiOpenDatabaseList(dbCursor));
    
      do
      {
        Result = DbiGetNextRecord(dbCursor, dbiNOLOCK, &Database, NULL);
    
        if (Result != DBIERR_EOF)
        {
          liste->Add(AnsiString(Database.szName)    + " - " +
                     AnsiString(Database.szPhyName) + " - " +
                     AnsiString(Database.szDbType));
        }
      }
      while (Result == DBIERR_NONE);
    
      Check(DbiCloseCursor(dbCursor));
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      GetDatabaseList(ListBox1->Items);
    }
    //---------------------------------------------------------------------------
    

    bai

    [ Dieser Beitrag wurde am 28.01.2003 um 16:58 Uhr von Sunday editiert. ]


Anmelden zum Antworten