Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

Вывод в DBGrid только что созданного столбца в БД Access   Найти похожие ветки 

 
Дмитрий А.   (2007-03-13 23:37) [0]

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


 
Johnmen ©   (2007-03-14 00:00) [1]


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

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

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

Где и как?

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

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

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


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

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

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


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

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

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


 
Iris ©   (2007-03-14 10:27) [3]

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


 
Iris ©   (2007-03-14 13:19) [4]

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


 
Iris ©   (2007-03-14 13:19) [5]

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


 
npu3pak ©   (2007-03-28 08:27) [6]

Попробуй вот так:
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;

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


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


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

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


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

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

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


 
npu3pak ©   (2007-04-03 11:43) [8]

Ребята, все намного проще!
Во-первых:
> 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;


 
sniknik ©   (2007-04-03 11:49) [9]

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


 
sniknik ©   (2007-04-03 11:52) [10]

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

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


 
Megabyte ©   (2007-04-03 12:04) [11]

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


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

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


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

Согласен %)



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
15-1180025838
Витян
2007-05-24 20:57
2007.06.24
Зачем мне нужна электронная почта??


15-1180444764
lookin
2007-05-29 17:19
2007.06.24
Кабель сетевой, хаб etc...


2-1180688001
Fly____
2007-06-01 12:53
2007.06.24
Нет ли у кого функции получения кода цвета из строки?


2-1180626487
FIL-23
2007-05-31 19:48
2007.06.24
округление


6-1165135066
Азат
2006-12-03 11:37
2007.06.24
картинки в браузере на ВЕЧНО!