![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить значение автоинкрементного поля? [D7, Paradox]
Algiz © (2005-06-16 11:30:00)Подскажите, пожалуйста, как программно получить значение автоинкрементного поля?
Algiz (2005-06-16 14:03:00) [21]to Anatoly Podgoretsky © (16.06.05 14:00)
А что это не правильно? Это выше подсказали...
Sergey13 (2005-06-16 14:02:00) [22]CachedUpdates какой у Table1 ?
Anatoly Podgoretsky (2005-06-16 14:00:00) [23]А этому frmMain.Table1.Last;
кто тебя научил?
Algiz (2005-06-16 13:53:00) [24]Все бы ничего, но мне к вечеру сегодня надо её доделать и сдать, а что и как доделывать даже и не знаю..
Algiz (2005-06-16 13:46:00) [25]нет, не висит.
Sergey13 (2005-06-16 13:42:00) [26]А обработчиков на Table1 никаких не висит?
Algiz (2005-06-16 13:38:00) [27]Между ничего нету. Num - AutoInc, j - integer. Пробовал, все равно не выходит.
Sergey13 (2005-06-16 13:27:00) [28]2 [11] Algiz © (16.06.05 13:18)
Если между
frmMain.Table1.Post;
И
frmMain.Table1.Last;
Ничего больше нет, то второе лишнее. Где то с типами напортачил, ИМХО. Какого типа Num в датасете? Какого типа j?
Я бы все таки посоветовал явное преобразование FieldByName('Num').asInteger. А так, вроде криминала не видно.
Algiz (2005-06-16 13:18:00) [29]Часть кода процедуры.
frmMain.Table1.Append; // Добавление новой записи в конец таблицы
// Общие данные
frmMain.Table1.FieldByName('Fam').AsString:=Edit1.Text;
frmMain.Table1.FieldByName('Fam').AsString:=Edit1.Text;
frmMain.Table1.FieldByName('Name').AsString:=Edit2.Text;
frmMain.Table1.FieldByName('Otch').AsString:=Edit3.Text;
frmMain.Table1.FieldByName('Komnata').AsInteger:=StrToInt(Edit4.Text);
frmMain.Table1.FieldByName('Floor').AsString:=ComboBox1.Text;
frmMain.Table1.FieldByName('DataZ').AsString:=DateToStr(DateTimePicker1.DateTime);
frmMain.Table1.FieldByName('Lgota').AsString:=Edit5.Text;
frmMain.Table1.FieldByName('DataV').AsString:=DateToStr(DateTimePicker2.DateTime);
frmMain.Table1.Post;
frmMain.Table1.Last;
j := frmMain.Table1Num.Value;
frmMain.Label4.Caption:= IntToStr(j);
Dummes (2005-06-16 12:20:00) [30]Значит Ваш aut объявлен не правильно!
(aut:=Table1.FieldByName('Num').Value;)
EConvertError with message ''' is not a valid integer value'.
Протестировать можно так:
var
i:Integerl;
...
DisbleControls;
while not TAble1.eof do
begin
inc(i);
TAble1.next
end;
EnableControls;
Sergey13 (2005-06-16 12:18:00) [31]2[8] Algiz © (16.06.05 12:12)
А как ты вставляешь запись можно увидеть? Ты наверное Post не сделал.
Algiz (2005-06-16 12:12:00) [32]to Dummes (16.06.05 12:02)
Попробовал как ты посоветовал. Вылетает такая ошибка.
Project Project1.exe raised exception class EConvertError with message ''' is not a valid integer value'.
С aut:=Table1.FieldByName('Num').asInteger; аналогичная ситуация.
Sergey13 (2005-06-16 12:09:00) [33]2[6] Dummes (16.06.05 12:08)
>Ошибка синтаксиса:
Это не синтаксис. Это консерватория. 8-)
Dummes (2005-06-16 12:08:00) [34]Ошибка синтаксиса:
..ORDER BY YY DESC
Dummes (2005-06-16 12:03:00) [35]...Или запросом
select*...
Order By desk
Sergey13 (2005-06-16 12:02:00) [36]2[2] Algiz © (16.06.05 11:56)
А как не получается то? Ошибка что ли? Какая?
Надо спозиционироваться на эту запись и сделать
aut:=Table1.FieldByName('Num'). asInteger;
Или запросом
select max(Num) as max_num from table_name
и прочитать значение.
aut:=Query1.FieldByName('max_Num'). asInteger;
Dummes (2005-06-16 12:02:00) [37]Table1.Last;
nm :=Table1Num.Value;
Algiz (2005-06-16 11:56:00) [38]А можно написать как это долно выглядеть?...
Пробовал так, но что то не получается((
aut:=Table1.FieldByName('Num').Value;
Sergey13 (2005-06-16 11:34:00) [39]Прочитать его после вставки.