Главная страница
    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.48 MB
Время: 0.037 c
15-1180189731
Kostafey
2007-05-26 18:28
2007.06.24
Посоветуйте где найти простой фришный конвертор html в chm


6-1164715186
-=MAXIMUS=-
2006-11-28 14:59
2007.06.24
как отправить на URL файл XML и получить ответ?


2-1180677346
Kolan
2007-06-01 09:55
2007.06.24
Объясните, я что отчет могу только для бд сделать?


2-1180762272
OSR
2007-06-02 09:31
2007.06.24
трехмерные кривые


1-1177480679
Nucer
2007-04-25 09:57
2007.06.24
Как достать значок из программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский