Как извлечь информацию об ID

Статус
В этой теме нельзя размещать новые ответы.

Lonely Soul

Житель города
#1
Help plz, есть таблица, туда добавляется новая запись. Имеется поле ID (AUTO_INCREMENT), собственно инетресует вопрос, как, грубо говоря, в переменной А, получить ID последней записи, или MAX(ID)?
Все это на Delphi
 

Aliens

Меня знают многие ;-)
#2
Видимо select max(id) from таблица :)
Ну или для компонента (непонятно какой юзает автор) свойство что-то типа MaxRow
 

Lonely Soul

Житель города
#3
то что селект max id понятно, оно извлекается, даже в таблицу выводит.
Компонент mySQL DAC, а именно mysqltable-datasource-mysqlquery-ehlib
 

Aliens

Меня знают многие ;-)
#4
Мда... лет 7-5 назад забросали бы способами, советами, и еще бы убедили, что дельфи не есть гуд, а МС VC++ надо юзать.. А сейчас... Даже те, кто еще считает себя практикующими программерами не отписывается... ибо уже не то поколение. К сожалению кругом одни лентяи и дураки..
 
#5
К сожалению кругом одни лентяи и дураки..
Ну не всё так плохо. В SQL есть функция SHOW TABLE STATUS
Проще её сделать процедурой. Далее кусок пхп кода, как в делфи впихнуть сами разберетесь
Код:
function get_table_auto_increment_next_value($db, $table) 
{ 
$sql = "SHOW TABLE STATUS FROM `$db` LIKE '$table'"; 

$result = mysql_query($sql); 
$row	= mysql_fetch_assoc($result); 

return $row['Auto_increment']; 
}
 

Lonely Soul

Житель города
#6
Проблема у меня в том, что я не знаю как раз таки, как извлечь из запроса число, которое он возвращает, а не в том как узнать это число.
Читал, пишут про то, что задать в query параметр, с типом Output, но че то не работает...
 
#7
вариант с костылем - добавить в форму поле типа dbedit невидимое туда выводить запрос и оттуда же потом считвать значение. А вообще задачу целиком лучше видеть
Вариант с max(id) не прокатит для многих нужд. Представьте, что вы добавили в пустую таблицу 1, а потом сразу 10 записей. А потом удалили эти 10. max(id) выдаст 1, хотя следующая запись создастся с номером 12. Поэтому применим только SHOW TABLE STATUS.
 

Lonely Soul

Житель города
#8
вариант с костылем - добавить в форму поле типа dbedit невидимое туда выводить запрос и оттуда же потом считвать значение. А вообще задачу целиком лучше видеть
Вариант с max(id) не прокатит для многих нужд. Представьте, что вы добавили в пустую таблицу 1, а потом сразу 10 записей. А потом удалили эти 10. max(id) выдаст 1, хотя следующая запись создастся с номером 12. Поэтому применим только SHOW TABLE STATUS.
Ладно, буду ковыряться :) если не додумаюсь, то сделаю через dbedit
В моем случае, в таблицу добавляется одна запись, и сразу же печатается отчет, в котрый необходимо вставить номер этой записи. Записи не удаляются в данной таблице.
Еще что то читал про LAST INSERT ID....
 

Lonely Soul

Житель города
#10
Время поджимает, сделал через dbedit тупо :) потом прочитал что можно через хранимые процедуры,позже переделаю...
 
Статус
В этой теме нельзя размещать новые ответы.