Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137

    [Delphi 5] autoincrement con alter table

    Ciao,

    è possbile aggiungere un nuovo campo di tipo autoincrement in una tabella paradox e poi metterlo come chiave primaria della stessa?
    come si fa?

    grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137
    Scusate,

    vorrei conoscere la strada utilizzando l'ALTER TABLE:
    ALTER TABLE tabella_x ADD PIPPO ????

    Grazie.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137
    ok, sono riuscot a fargli aggiungere un campo autoincrement ma adeso ho il problema di come impostarlo a chiave primaria perchè facendo un AddIndex dopo l'inserimento del campo mi dice "field not found" ma se vedo la tabella ce l'ha dentro quindi perchè?

    inoltre se lo rieseguo saltando l'inserimento ma solo facendo l'impostazione a chiave primaria con AddIndex lui mi dice "number is out of range", perchè?


    aiuto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137
    Ciao,

    perchè nessuno mi risponde?
    non si riesce a spiegare e/o a risolvere?


  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Quali componenti stai utilizzando? Come hai aggiunto il campo alla tabella Paradox? Perchè non usi Database Desktop?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137
    1. il componente che sto utilizzando è una tabella paradox che creo via codice a cui assegno di volta in volta il nome della tabella che devo aggiornare in modo tale da non utilizzare "tremila" componenti nella form.
    2. il campo lo aggiungo così, o meglio il codice che uso è:

    codice:
      TbTable := TTable.Create(Self);
      MyQry := TQuery.Create(Self);
      try
        MyQry.Databasename := EditDir.Text;
        With TbTable Do begin
          TableType := ttParadox;
          Databasename := EditDir.Text;
          TableName := 'Pippo';
          if Exists then begin
            Active := True;
            sField := '';
            For nF := 0 To FieldCount - 1 Do
              if (Uppercase(Fields[nF].FieldName) <> 'PROGRESSIVO')
                 and (Uppercase(Fields[nF].FieldName) <> 'OGGETTO') then
                sField := sField + ' DROP ' + Fields[nF].FieldName + ',';
            Active := False;
            if sField <> '' then begin
              sField := Copy(sField,1,Length(sField)-1);
              MyQry.Sql.Clear;
              MyQry.Sql.Add('Alter Table "Pippo" ' + sField);
              MyQry.ExecSql;
            end;
    
            Active := True;
            sField := '';
            if FindField('PROGRESSIVO') = nil then
              sField := ' ADD PROGRESSIVO AutoInc,';
            if FindField('OGGETTO') = nil then
              sField := ' ADD OGGETTO Char(15),';
            Active := False;
            if sField <> '' then begin
              sField := Copy(sField,1,Length(sField)-1);
              MyQry.Sql.Clear;
              MyQry.Sql.Add('Alter Table "Pippo" ' + sField);
              MyQry.ExecSql;
            end;
            //DeleteIndex('');
            AddIndex('', 'PROGRESSIVO', [ixPrimary]);
          end;
        End;
      finally
        TbTable.Free;
        MyQry.Free;
      end;

    nel codice il problema mi viene dall'PROGRESSIVO

    3. non uso database desktop perchè sto realizzando un programma per aggiornare un database (posto su diversi server) a seconda della presenza o meno di certi campi, di conseguenza visto che sui server esistono versioni differenti ho pensato di creare questo programma per allineare tutti i database al database definitivo in un colpo e per farlo diventa troppo lungo col database desktop perchè non si parla di due o tre tabelle con 4/5 campi.


  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137
    qualcuno ha altre idee sulla mia situazione?
    non ne riesco a venire fuori


  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137
    ok, ho visto che se il campo che voglio far diventare chiave primaria NON è all'inizio della lista dei campi lui non me lo mette come chiave e mi dà o errore (se uso AddIndex) oppure non fa nulla (se uso ALTER TABLE pippo ADD PRIMARY KEY campo).

    come si fa (se si fa) ad ordinare i campi di una tabella paradox con delphi 5? così poi applico l'AddIndex ed il mio la voro è finito.



    spero che mi possiate aiutare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.