Конференция "Базы" » Delphi и Mysql [D6, MySQL]
 
  • Jenny © (20.04.11 20:35) [0]
    Здравствуйте, я разрабатываю БД на Delphi и Mysql с помощью компонентов Ado. Базу создала и подключила, но возник ряд вопросов:
    1. В таблице Grid в одном поле отображается тип данных, а не сами данные, в остальных полях все как положено. Также это поле нормально отображается в самой БД Mysql. В чем может быть ошибка и как ее исправить?
    2. как организовать добавление данных в БД посредством Delphi? пишу:
    if DataModule2.ADOTableBase.Modified then
     DataModule2.ADOTableBase.Post;
     Close;
    но как-то он коряво данные заполняет.
    3. как сразу после удаления какой-либо строки обновить таблицу, а то она обновляется только после переподключения к базе?

    заранее спасибо
  • OW © (21.04.11 09:02) [1]

    > 1. В таблице Grid в одном поле отображается тип данных,
    > а не сами данные, в остальных полях все как положено. Также
    > это поле нормально отображается в самой БД Mysql. В чем
    > может быть ошибка и как ее исправить?

    Ужель Integer? :)
    см OnDrawDataCell или google Memo-поля в DBGrid


    > 2. как организовать добавление данных в БД посредством Delphi?
    >  пишу:
    > if DataModule2.ADOTableBase.Modified then
    >  DataModule2.ADOTableBase.Post;
    >  Close;
    > но как-то он коряво данные заполняет.

    что конкретно значит "коряво". Что ожидалось и что получилось?


    > 3. как сразу после удаления какой-либо строки обновить таблицу,
    >  а то она обновляется только после переподключения к базе?

    Приведите свой код удаления
  • Jenny © (21.04.11 11:48) [2]
    1. использую тип данных widestring
    2. добавляет только данные в бд Mysql, но не отображает их в таблице DBGrid
  • OW © (21.04.11 12:07) [3]

    > 1. использую тип данных widestring

    см google OnDrawDataCell в DBGrid
    или use другой Grid, где это реализовано


    > 2. добавляет только данные в бд Mysql, но не отображает
    > их в таблице DBGrid

    как происходит добавление, приведите код.
  • clickmaker © (21.04.11 12:08) [4]
    > 1. использую тип данных widestring

    стандартный grid в D6 не поддерживает уникод


    > 2. добавляет только данные в бд Mysql, но не отображает
    > их в таблице DBGrid

    а как добавляются данные?
  • Плохиш © (21.04.11 12:24) [5]

    > OW ©   (21.04.11 12:07) [3]


    > clickmaker ©   (21.04.11 12:08) [4]

    Мужики, у меня в подвале что-то стучит. Нужна помощь.
  • имя (21.04.11 13:03) [6]
    Удалено модератором
  • Jenny © (21.04.11 14:31) [7]
    2. пишу данные в dbedit, на кнопку вешаю обработчик:
    datamodule.adotable.open;
    datamodule.adotable.fieldbyname('name').asstring:=dbedit1.text;
    далее по всем полям, которые необходимо заполнить
    datamodule.adotable.post;
    close
  • Jenny © (21.04.11 14:34) [8]
    > 3. как сразу после удаления какой-либо строки обновить таблицу,
    >  а то она обновляется только после переподключения к базе?

    Приведите свой код удаления

    if application.messagebox ('вы действительно хотите удалить эту запись?'), 'внимание', mb_okcancel)=id_ok then datamodule.adotable.delete;
  • clickmaker © (21.04.11 15:38) [9]
    > [8] Jenny ©   (21.04.11 14:34)

    а где обновление набора данных, на который смотрит DBGrid?
  • Jenny © (21.04.11 15:41) [10]
    а как это сделать? не могли бы привести код?
  • clickmaker © (21.04.11 15:57) [11]

  • > Jenny ©   (21.04.11 14:31) [7]
    >
    > 2. пишу данные в dbedit, на кнопку вешаю обработчик:
    > datamodule.adotable.open;
    > datamodule.adotable.fieldbyname('name').asstring:=dbedit1.
    > text;
    > далее по всем полям, которые необходимо заполнить
    > datamodule.adotable.post;
    > close

    это бред сивой кобылы. если используется DBEdit, то:
    1. DBEdit ДОЛЖЕН быть уже связан с adotable и его каким-то полем.
    2. При изменении значения в DBEdit adotable  АВТОМАТИЧЕСКИ переходит в режим dsEdit
    3. Потому достаточно где-то запостить(Post) данные..Например на кнопке "Сохранить"
    В итоге вместо этой бедятины

    > далее по всем полям, которые необходимо заполнить

    в событии OnClick кнопки ОДИН раз вызвать

    > datamodule.adotable.post;


    И на кой каждый раз ОТКРЫВАТЬ и ЗАКРЫВАТЬ набор данных?
 
Конференция "Базы" » Delphi и Mysql [D6, MySQL]
Есть новые Нет новых   [134431   +15][b:0][p:0]