![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу произвести UPDATE для ClientDataSet [D7, SAPDB]
LinOS © (2003-09-16 11:49:00)
Есть SQL сервер.
Через SQLDataSet делаю выборку данных и через провайдела
передаю в ClientDataSEt на который наложена DBGrid.
В DBGrid вношу новую запись и нажимаю кнопульку с
<nn>if (cdsBlanks.ChangeCount > 0) then cdsBlanks.ApplyUpdates(-1);</nn>
Либо ничего не делает, либо кричит что нет таблицы MyTable
LinOS (2003-09-18 05:24:00) [1]
Люди, help!!!!
LinOS (2003-09-17 13:16:00) [2]
И как корректно писать. Примерчик, плиз.
Vlad (2003-09-17 12:51:00) [3]
Мало того, DM.SQLds.Open делать тоже не обязательно.
Если ClientDataSet к нему подключен, он сам его откроет.
Sandman25 (2003-09-17 12:46:00) [4]
>DM.SQLds.Close;
Это зачем?
LinOS (2003-09-17 12:44:00) [5]
У меня нет колонки 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".
Alone Corsar (2003-09-16 12:55:00) [6]
попробуй сделать такую выборку
SELECT rowid,id, name, l_name FROM staff WHERE status IS NULL
LinOS (2003-09-16 12:29:00) [7]
Ругается, что не может найти таблицу "staff".
Затем выдает, что нет ключевого поля. КАк его определить, если я выбираю с cds на разных этапах разные данные?
LinOS (2003-09-16 12:03:00) [8]
В каком смысле "добавить"
Все поля автоматически отображаются, в т.ч. и id.
Alone Corsar (2003-09-16 12:00:00) [9]
В dbGrid ключевое поле скорее всего не выводится попробуй добавить его и сделать невидимым
LinOS (2003-09-16 11:56:00) [10]
Да имеется.
SELECT id, name, l_name FROM staff WHERE status IS NULL
id - первичный ключ.
Alone Corsar (2003-09-16 11:51:00) [11]
Какой запрос проводит выборку, имеется ли в выборке ключевое поле?