Конференция "Базы" » Как создавать и удалять поля [D7, Access]
 
  • Neiron © (26.10.11 22:07) [0]
    Подскажите пожалуйста как мне в дельфи7 добавить поля для готовой базы данных сделанной в Access. То что в поиске нашел в гугле не работает :(
  • Neiron © (26.10.11 22:14) [1]
    например сделал этот код на кнопку и у меня ошибка выскакивает: Project Evolution.exe raised exception class EDatabaseError with message 'ADOT: Field 'CO_Name' not found'. Process stopped. Use Step or Run to continue.
     
    procedure TGeneralForm.Button1Click(Sender: TObject);
    var
    T: TStringField;
    begin

     DataM.ADOT.Close;
     T:= TStringField.Create(Self);
     T.FieldName := 'CO_NAME';
     T.Name := DataM.ADOT.Name + T.FieldName;
     T.Index := DataM.ADOT.FieldCount;
     T.DataSet := DataM.ADOT;
     DataM.ADOT.FieldDefs.UpDate;
     DataM.ADOT.Open;

    end;

  • Медвежонок Пятачок © (26.10.11 22:32) [2]
    выскакиват верно.
    потому что нет такого поля в таблице.
  • Neiron © (26.10.11 22:45) [3]
    А как сделать чтобы появилось такое поле новое и как его потом удалить? Надо чтобы в Access хранилось это поле какое то время даже когда прога не работает. :(
  • Медвежонок Пятачок © (26.10.11 22:47) [4]
    если его удалить, то оно не будет храниться в акцесс какое-то время, даже когда прога не работает
  • Neiron © (26.10.11 23:11) [5]
    Дак это понятно что небудет, я это понимаю. Дельный совет то есть или будем синтаксисом русского языка игратся? :(
  • Медвежонок Пятачок © (26.10.11 23:13) [6]
    alter table add fieldname fieldtype
  • Neiron © (26.10.11 23:27) [7]
    я непонял что сделать надо! толи заменить fieldname на fieldtype толи чето добавить???
  • Медвежонок Пятачок © (26.10.11 23:34) [8]
    последний вариант.

    "толи чето добавить"
  • Inovet © (26.10.11 23:48) [9]
    > [7] Neiron ©   (26.10.11 23:27)
    > я непонял что сделать надо!

    Читай справку по SQL на предмет ALTER TABLE.
  • Neiron © (26.10.11 23:49) [10]
    Добавил но все равно неработает:

    procedure TGeneralForm.Button1Click(Sender: TObject);
    var
    T: TStringField;
    begin

     DataM.ADOT.Close;
     T:= TStringField.Create(Self);
     T.FieldName := 'CO_NAME';
     T.Name := DataM.ADOT.Name + T.FieldName;
     T.Index := DataM.ADOT.FieldCount;
     T.DataSet := DataM.ADOT;
     DataM.ADOT.FieldDefs.UpDate;
     DataM.ADOT.Fields.Add(T);
     DataM.ADOT.Open;

    end;

  • Neiron © (26.10.11 23:49) [11]
    Мне SQL ненужен, можно как то без него?
  • Медвежонок Пятачок © (26.10.11 23:50) [12]
    не то добавил.
    я имел ввиду мозг.
  • Inovet © (26.10.11 23:51) [13]
    > [11] Neiron ©   (26.10.11 23:49)
    > Мне SQL ненужен, можно как то без него?

    Коран запрещает?
  • Neiron © (26.10.11 23:55) [14]
    итак мозги взорватся могут как можно стока помнить всякого кода, SQL еще тут всякий. Непонимаю как профессиональные программисты помнят стока, надо быть гением прямо каким то иначе сидишь просто книги без конца листаешь и читаешь, и читаешь, а программа допустим срок имеет по времени написания, так никогда неуспеть сделать все как надо. :(
  • Германн © (27.10.11 00:02) [15]

    > SQL еще тут всякий

    Вот как раз SQL тут самый что ни на есть "невсякий"!
    А вот TTable и его "наследник" TADOTable именно всякая ненужная хрень.
  • Neiron © (27.10.11 00:05) [16]
    Вы хотите сказать что TTable и его наследник TADOTable не упрощают работу с базами данных? А если я изучу SQL я смогу с нуля создать базу данных быстро и так чтобы на другом компе с виндовс хр и виндовс 7 она работала корректно?
  • Германн © (27.10.11 00:11) [17]

    > Вы хотите сказать что TTable и его наследник TADOTable не
    > упрощают работу с базами данных?

    Упрощают, конечно. Но только на первый взгляд, в простых программах. А вот когда начнут возникать подобные проблемы, то...

    > А если я изучу SQL я смогу с нуля создать базу данных быстро
    > и так чтобы на другом компе с виндовс хр и виндовс 7 она
    > работала корректно?

    Именно так. И даже на компе с другими ОС. SQL от ОС никак не зависит.
  • Neiron © (27.10.11 00:16) [18]
    Спасибо, пойду качать книгу и читать завтра начну :)
  • Inovet © (27.10.11 01:00) [19]
    > [18] Neiron ©   (27.10.11 00:16)
    > Спасибо, пойду качать книгу и читать завтра начну :)

    Раз ты выбрал Аксес, то пользуйся TADODataSet, TADOCommand. SQL читай соответственно об Microsoft Jet Database Engine. Сейчас скажут: лучше взять сразу MS SQL, есть бесплатная версия. Оно и лучше будет.
  • Германн © (27.10.11 01:23) [20]

    > SQL читай соответственно об Microsoft Jet Database Engine.

    SQL нужно в первую очередь изучать без относительно конкретной БД. А уже потом можно выбирать, что читать дополнительно.
  • Inovet © (27.10.11 01:59) [21]
    > [20] Германн ©   (27.10.11 01:23)
    > SQL нужно в первую очередь изучать без относительно конкретной БД.

    Оно, конечно, так правильно, но можно и сразу по конкретной БД, чтобы пробовать примеры, а потом уже общее почитать.
  • Германн © (27.10.11 02:36) [22]

    > Inovet ©   (27.10.11 01:59) [21]

    А при чём тут конкретная БД, позвольте спросить?
  • Anatoly Podgoretsky © (27.10.11 08:31) [23]

    > с виндовс хр и виндовс 7 она работала корректно?

    У тебя вряд ли
  • Inovet © (27.10.11 11:08) [24]
    > [22] Германн ©   (27.10.11 02:36)
    > А при чём тут конкретная БД, позвольте спросить?

    СУБД, о следящий за точностью.
  • Yurikon (27.10.11 17:45) [25]
    Привет!

    Вы пытаетесь добавить поле в делфи, которое отображает значение поля таблицы в базе.
    А требуется, как я понял, добавить поле именно в таблице в акцессе.

    Для это надо выполнить запрос, типа

       ADOCommand.CommandText := 'ALTER TABLE ....";
       ADOCommand.Execute;



    Удачи!
 
Конференция "Базы" » Как создавать и удалять поля [D7, Access]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]