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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.046 c
14-1084836367
/1
2004-05-18 03:26
2004.06.06
Посоветуйте кино.


1-1085375644
ПсихЪ_клон
2004-05-24 09:14
2004.06.06
Шаблоны классов


14-1085152846
ISP
2004-05-21 19:20
2004.06.06
Мод компа. До чего Half-Life довести может...


1-1085282948
Пугливый Лыжник
2004-05-23 07:29
2004.06.06
Рисование на канве


14-1085249231
Lm
2004-05-22 22:07
2004.06.06
shell+XP





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