Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Как узнать номер новой записи добавленой через...   Найти похожие ветки 

 
Knight ©   (2004-05-15 21:05) [0]

Query.SQL... ;
ExecSQL?

База Paradox.


 
SergP ©   (2004-05-15 21:48) [1]

По идее номер добавленной записи должен быть равен общему числу записей в таблице:

with Query do
begin
  SQL.Text:="select count(*) as cnt from Mytable";
  Open;
  First;
  NumRecord:=FieldByName("cnt").AsInteger;
  Close;
end;


 
Knight ©   (2004-05-15 22:04) [2]


> SergP ©   (15.05.04 21:48)

А без открытия никак? Свойства там какие или ещё что?


 
Knight ©   (2004-05-15 22:29) [3]

Так может проще через Insert?


 
SergP ©   (2004-05-15 23:40) [4]


> А без открытия никак? Свойства там какие или ещё что?


Х/З . Не пробовал...

А вообще какой смысл узнавания номера записи? Для чего может пригодиться такая инфа?
Может лучше изменить алгоритм так чтобы не использовать эту инфу?

PS Что-то мастеров сегодня не видно.... Пьянствуют наверное... Базы - всегда была одной из лучших конференций в плане ответоспособности мастеров...


 
jack128 ©   (2004-05-15 23:59) [5]

с парадоксом не работал, но реляционная теория такого понятия как номер записи не знает ;-) Номер записи имеет какой то смысл в DataSet"e,  но не в таблице..


 
SpartakVC   (2004-05-16 02:54) [6]

Не факт, что номер добавленной записи будет равен количеству записей, так как в упорядоченной по ключу таблице она встанет на своё место по порядку, тем более применение INSERT приведёт к вставке записи в позицию курсора набора данных. Что бы узнать её номер лучше после вставки найти её, например,
TTable.Locate(["Имя Поля"], "Значение поля вставленной записи", []);
TTable.RowNumber - ето есть номер нашей записи.


 
Плохиш   (2004-05-16 03:34) [7]

2Knight

Наводящий вопрос: Что такое, в Вашем понимании, "номер новой записи добавленой через..."?


 
Knight ©   (2004-05-16 23:47) [8]

>> SergP ©   (15.05.04 23:40)
> А вообще какой смысл узнавания номера записи? Для чего может пригодиться
> такая инфа?
Иногда ведь надо поместить какие-то данные в таблицу и взять номер новой записи, например из поля ID для размещения ещё где-то.

> Может лучше изменить алгоритм так чтобы не использовать эту инфу?
Например?

>> [6] SpartakVC   (16.05.04 02:54)
Это если в TQuery включить RequestLive...

to All
Неужели нет подобия mysql_insert_id()?


 
sniknik ©   (2004-05-17 01:13) [9]

> Иногда ведь надо поместить какие-то данные в таблицу и взять номер новой записи, например из поля ID для размещения ещё где-то.
гораздо лутше (понятнее чем в [1]).
для ID можно использовать автоинкрементное (его же и ключом можно назначить)
если же нужно именно номер записи то у парадокса в таблицах(без фильтра и без включенного индекса) вполне TTable.RecNo работает. правда сразу после TTable.Append/TTable.Insert его не прочтеш неопределено еще (записи нет) читать надо после Post или до.
на самом деле и индекс с фильтром не помеха если помнить что выдается реальный номер записи а не отображаемый (перепутанный индексом)
а вот в SQL команды доступа к номеру нет.


 
sniknik ©   (2004-05-17 01:14) [10]

сорри, имел в виду [0] а не [1]


 
Knight ©   (2004-05-17 01:28) [11]


> [9] sniknik ©   (17.05.04 01:13)

Было бы поле не автоинкрементным не было бы и вопроса.

Переделаю вставку записей через Insert, используя либо TQuery в режиме TTable, либо просто TTable... хотелось - как лучше, а приходится - как всегда :)

Всем спасибо.


 
sniknik ©   (2004-05-17 01:35) [12]

> Было бы поле не автоинкрементным не было бы и вопроса.
так оно у тебя автоинкремент, и ты его читать пытаешся?, тогда recno ни в коем случае использовать нельзя, наверняка будут несовпадения.

после записи читай это поле и все, по другому опасно. и кстати для парадокса (т.к. локальный или файл сервер) таблицами работать лутше. (имхо) во всяком случае смысла от SQL большого нет раз на серверной стороне нет sql-ного движка.


 
Knight ©   (2004-05-17 01:46) [13]


> sniknik ©   (17.05.04 01:35)
> смысла от SQL большого
> нет раз на серверной стороне нет sql-ного движка.

SQL мне нравится, удобством создания таблиц, сортировки, выборки, соединения данных из разных таблиц и т.п.


 
sniknik ©   (2004-05-17 08:27) [14]

нравится так используй, но кто мешает совмешать и то и то? это в случае с SQL сервером таблицы - зло, а в варианте локальном/файл сервером нормально, даже наоборот лутше.

вот, если к примеру многопользовательский доступ, то в случае с SQL делаеш insert и следующей командой select max(id) ... (узнать) и никаких гарантий что между этими командами не вклинился второй юзер со своим инсертом...
а с табличным доступом ты останешся на той же записи, сколько бы соседи записей не добавили (или будет блокировка). в любом случае прочитаеш правильное значение.



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

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.041 c
3-1084453609
юрок
2004-05-13 17:06
2004.06.06
bd


14-1084561964
Goida
2004-05-14 23:12
2004.06.06
Давайте введем единый стандарт на оформление текста программ...


1-1085636689
andruxa
2004-05-27 09:44
2004.06.06
3 вопроса от незнания. Элемент Static. Tpanel. Компилятор дельфи.


14-1084289821
Soft
2004-05-11 19:37
2004.06.06
Искусственный интеллект: философские вопросы реализации?


11-1074881761
TEmp_Name
2004-01-23 21:16
2004.06.06
Updater 3.1