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

Вниз

Проблема автоинкримента и ClientDataSet а!   Найти похожие ветки 

 
YURA-007   (2007-05-23 19:52) [0]

Всем добрый вечер! При добавлении новой записи в ClientDataSet, точнее при сохранении записи, автоинкрементное поле не генерируется, а остаётся пустым, в результате после добавления второй записи(точнее сохранении), выскакивает Key Violation. Почему поле не генерируется, в Table всё работает отлично. БД Paradox Зарание спасибо!


 
Johnmen ©   (2007-05-24 09:10) [1]

AutoGenerateValue и далее по теме.


 
YURA-007   (2007-05-24 10:23) [2]


> AutoGenerateValue и далее по теме.


> Если это вы о свойстве автоинкрементного поля, то его значение
> и у Table и у ClientDataSet = arNone(по умолчанию), но я
> менял его на arAutoInc, и у Table и у ClientDataSet, но
> результат тот же самый – у Table при сохранении записи поле
> генерируется, у ClientDataSet нет!
> И какими бы я способами не пытался сохранять, добавлять
> не разу это поле не сгенерировалось!


 
Johnmen ©   (2007-05-24 10:30) [3]

Приводи полное описание связок (в первую очередь CDS) и алгоритма работы.


 
YURA-007   (2007-05-24 11:46) [4]

Соединение самое простое
ClientDataSet1 - ProviderName->DataSetProvider1
DataSetProvider1 - DataSet->Table1
DataSource1 – DataSet-> ClientDataSet1
DBGrid1 и DBNavigator1 – DataSource-> DataSource1

В редактор полей ClientDataSet добавлены все поля из Table, в том числе и автоинкремент.
Ну а сам Table1, со своим личным DataSource2, DBGrid2 и DBNavigator2  настроены и работают как положено.

------
var
 Form1: TForm1;
 MySavePoint: integer;
 Modified: boolean;
-------

Procedure FormCreate
begin
Table1.Open;
ClientDataSet1.FileName:="Save.XML";
ClientDataSet1.Open;
ClientDataSet1.SaveToFile("", dfXML);
Mysavepoint:=ClientDataSet1.SavePoint;
end;

Добавление, сохранение происходит через навигатор.
И есть две кнопки
1. В базу
begin
ClientDataSet1.ApplyUpdates(-1);
Table1.Refresh;
MySavePoint:=ClientDataSet1.SavePoint;
Modified:=false;
end;

2. В файл
begin
MySavePoint:=ClientDataSet1.SavePoint;
Modified:=true;
end;

Причём если нажать В базу, при сохранении, то добавляемая строка в Table записывается как положено, а в ClientDataSet, как всегда без генерации.
С кодом проблем я думаю быть не может, его практически нет. Может флаг какой у ClientDataSet1 или DataSetProvider1, или я что-то не правильно соеденил, ваще не пойму.


 
YURA-007   (2007-05-24 18:44) [5]

Что-то толи нет мастеров, толи не хотят мастера помочь мне!


 
Shaman_ ©   (2007-05-25 22:41) [6]

может и есть у CDS возможность автоматом загружать значение автоинкрементного поля после applyupdates, но я так и не нашел у этого класса такой возможности.  Приходится каждый раз вручную запрашивать сгенерированные базой значения и добавлять в CDS



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

Форум: "Базы";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.034 c
4-1175334004
Galiaf
2007-03-31 13:40
2007.09.30
Смена обоины на API


15-1188675443
vpbar
2007-09-01 23:37
2007.09.30
Организм не принимает С++


15-1188541103
Шмелъ
2007-08-31 10:18
2007.09.30
Mail Observer Application


15-1188799430
vajo
2007-09-03 10:03
2007.09.30
Что-то не пойму как у ноутбука отключить цифровую клавиатуру


2-1188917942
delphiForever
2007-09-04 18:59
2007.09.30
быстрая работа с графикой без DirectX и OpenGL





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