Текущий архив: 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.48 MB
Время: 0.037 c