Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вывод в DBGrid только что созданного столбца в БД Access [D7]


Дмитрий А. ©   (2007-03-13 23:37:00) 

Вопрос следующий: подключаю таблицу Access к DBGrid  средствами DataSourse и AdoQuery. Создаю при помощи  ADOQuery.ExecSQL столбец в одной из таблиц Access, заполняю его данными, пишу такой запрос на вывод всех столбцов этой таблицы:
ADOQuery1.Active:=false;
    ADOQuery1.SQL.Text:='Select * From Spisok';
         ADOQuery1.Active:=true;
А он мне выводит только ключевое поле, а если запрашиваю только этот столбец отобразить , выдает первое и второе ключевое поле, но пустые строки в нем. А мне нужно отредактировать в DBGrid только что созданный столбец. Помогите, кто может, очень нужно!


Megabyte   (2007-04-03 13:45:00) [1]

Согласен %)


sniknik   (2007-04-03 12:29:00) [2]

> Всегда думал, что execsql надо делать только для запросов на модификацию
execsql (adoquery) это изврат от борланда, надо думать так - для модифицирующих команд компонент adocommand, для возвращающих данные adodataset... и все, и никаких путаниц с методами/логикой.


Megabyte   (2007-04-03 12:04:00) [3]

Всегда думал, что execsql надо делать только для запросов на модификацию, а для селектов достаточно просто открыть НД


sniknik   (2007-04-03 11:52:00) [4]

> adoquery1.sql.text:='SELECT * FROM DataBase';
> adoquery1.execsql;
> adoquery2.refresh;

опс... запрос оказывается другой... (смутил SELECT в первом квери, а рефреш значит делаем тому где ALTER? ну вот она и ошибка...)


sniknik   (2007-04-03 11:49:00) [5]

> Ребята, все намного проще!
все еще проще! вообще не нужны никакие извращения, и если у вас не работает то у вас ошибка в программе, надо ее искать, а не придумывать диких схем с обновлением только что открытого запроса.


npu3pak   (2007-04-03 11:43:00) [6]

Ребята, все намного проще!
Во-первых:
> adoquery1.open;
> adoquery1.sql.text:='SELECT * FROM DataBase';
> adoquery1.execsql;
> adoquery1.close;

Из этого реально нужно:
> adoquery1.sql.text:='SELECT * FROM DataBase';
> adoquery1.execsql;

Во-вторых:
На мой взгляд, самый простой способ обновить таблицу - это добавить еще пару adoquery2 и datasource2, связать их вместе. Затем после обновлений данных указать adoquery2.refresh и все!
Должно быть примерно так:
> adoquery1.sql.text:='SELECT * FROM DataBase';
> adoquery1.execsql;
> adoquery2.refresh;


Jan   (2007-03-28 08:49:00) [7]


> adoquery1.open;
> adoquery1.sql.text:='SELECT * FROM DataBase';
> adoquery1.execsql;
> adoquery1.close;

execsql необязательно


> ADOQuery1.Clear; // Это на случай возникновения ошибок..
> .

чтобы их небыло надо

ADOQuery1.SQL.Text := 'SELECT * FROM DataBase';


npu3pak   (2007-03-28 08:27:00) [8]

Попробуй вот так:
adoquery1.open;
adoquery1.sql.text:='SELECT * FROM DataBase';
adoquery1.execsql;
adoquery1.close;

или

ADOQuery1.Active:=false;
ADOQuery1.Clear; // Это на случай возникновения ошибок...
ADOQuery1.SQL.Add('SELECT * FROM DataBase');
ADOQuery1.Active:=true;

Должно все работать!


Iris   (2007-03-14 13:19:00) [9]

Так что же, не найдется мастеров, подсказать, в чем же дело?


Iris   (2007-03-14 13:19:00) [10]

Так что же, не найдется мастеров, подсказать, в чем же дело?


Iris   (2007-03-14 10:27:00) [11]

У меня такая же проблема, но даже если делаю "Отсоединись после изменения структуры таблицы и присоединись" все равно выводит только ключевое поле


Дмитрий А.   (2007-03-14 00:13:00) [12]

> Текст запроса?
 ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
         ADOQuery1.SQL.Add(alter table Spisok add NewRow string(25));
           ADOQuery1.ExecSQL;
>  заполняю его данными
>Где и как?
 
тоже как и в выше запросе через ADOQuery1.ExecSQL - обновляю все пустые поля на "Введите данные"

> выдает первое и второе ключевое поле
> Сколько же у тебя ключевых полей? :)


Ключевое поле второе, а показывается второе и первое поля

> Отсоединись после изменения структуры таблицы и присоединись
> снова.

Просвети темного, каким образом это можно сделать, буду рад, если на примере покажешь.


Johnmen   (2007-03-14 00:00:00) [13]


> Создаю при помощи  ADOQuery.ExecSQL столбец в одной из таблиц Access

Текст запроса?

>  заполняю его данными

Где и как?

> выдает первое и второе ключевое поле

Сколько же у тебя ключевых полей? :)

PS
Отсоединись после изменения структуры таблицы и присоединись снова.


Наверх

Титульная страница Поиск, карта сайта Написать письмо