Главная страница
    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
Время: 1.593 c
2-1188890150
Ivolg
2007-09-04 11:15
2007.09.30
Отображение в ListView


15-1186565545
EvChul
2007-08-08 13:32
2007.09.30
Посоветуйте компоненты для ГИС


1-1185019258
Makhanev Alexander
2007-07-21 16:00
2007.09.30
Совместимость с вистой...


2-1188891080
6aM6y4a
2007-09-04 11:31
2007.09.30
Дизассемблер


2-1188930945
serko
2007-09-04 22:35
2007.09.30
Системы исчисления...





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