Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];

Вниз

Не могу произвести 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-27455
romeo
2003-09-27 18:31
2003.10.09
Копирование и вставка компонента... Как?


14-27661
Guzz
2003-09-22 15:20
2003.10.09
Борьба со спамом


1-27558
Relaxxx
2003-09-29 15:53
2003.10.09
TStringList


14-27648
___Nikolay
2003-09-19 05:52
2003.10.09
* Задача 3 *


1-27521
Alibaba
2003-09-26 10:51
2003.10.09
Распаковать GIF





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский