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

Вниз

Не могу произвести UPDATE для ClientDataSet   Найти похожие ветки 

 
LinOS ©   (2003-09-16 11:49) [0]

Есть SQL сервер.
Через SQLDataSet делаю выборку данных и через провайдела
передаю в ClientDataSEt на который наложена DBGrid.
В DBGrid вношу новую запись и нажимаю кнопульку с
<nn>if (cdsBlanks.ChangeCount > 0) then cdsBlanks.ApplyUpdates(-1);</nn>

Либо ничего не делает, либо кричит что нет таблицы MyTable


 
Alone Corsar ©   (2003-09-16 11:51) [1]

Какой запрос проводит выборку, имеется ли в выборке ключевое поле?


 
LinOS ©   (2003-09-16 11:56) [2]

Да имеется.
SELECT id, name, l_name FROM staff WHERE status IS NULL
id - первичный ключ.


 
Alone Corsar ©   (2003-09-16 12:00) [3]

В dbGrid ключевое поле скорее всего не выводится попробуй добавить его и сделать невидимым


 
LinOS ©   (2003-09-16 12:03) [4]

В каком смысле "добавить"
Все поля автоматически отображаются, в т.ч. и id.


 
LinOS ©   (2003-09-16 12:29) [5]

Ругается, что не может найти таблицу "staff".
Затем выдает, что нет ключевого поля. КАк его определить, если я выбираю с cds на разных этапах разные данные?


 
Alone Corsar ©   (2003-09-16 12:55) [6]

попробуй сделать такую выборку
SELECT rowid,id, name, l_name FROM staff WHERE status IS NULL


 
LinOS ©   (2003-09-17 12:44) [7]

У меня нет колонки rowid.
Мастера, неужели никто не знает.
Схема же стандартная.
Из БД в локальную память (ClientDataSet), а после изменения надо опять в базу запостить.
КОД такой:

DM.SQLds.CommandText := "SELECT id, f_name, s_name, o_name FROM dba.staff WHERE status IS NULL";
DM.SQLds.Open;
DM.SQLds.Close;
DM.cdsBlanks.Open;
dbllbStaff.KeyField := "id";
dbllbStaff.ListField := "f_name";

а при нажатии на кнопку

if DM.cdsBlanks.ChangeCount > 0 then
DM.cdsBlanks.ApplyUpdates(-1);

На cdsBlanks наложили DBGrid,и в ней добавляем запись, после чего жмем на кнопку.
Ругается, что не может найти таблицу "staff".


 
Sandman25 ©   (2003-09-17 12:46) [8]

>DM.SQLds.Close;

Это зачем?


 
Vlad ©   (2003-09-17 12:51) [9]

Мало того, DM.SQLds.Open делать тоже не обязательно.
Если ClientDataSet к нему подключен, он сам его откроет.


 
LinOS ©   (2003-09-17 13:16) [10]

И как корректно писать. Примерчик, плиз.


 
LinOS ©   (2003-09-18 05:24) [11]

Люди, help!!!!



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
14-27681
саша2
2003-09-23 09:43
2003.10.09
наводка


14-27640
Жук
2003-09-19 14:20
2003.10.09
Тяпница на дворе...


1-27508
Геннадий
2003-09-26 14:32
2003.10.09
Программная прорисовка строк TListView - как?


6-27631
Maxim Pshevlotsky
2003-08-11 10:57
2003.10.09
Как расшифровать CHMOD в числовое представление?


1-27509
Bocman
2003-09-26 15:05
2003.10.09
выделен ли текст в Edit