Форум: "Базы";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизMAX(id) из DELPHI Найти похожие ветки
← →
mfender © (2004-11-09 09:59) [0]Использую MyODBC для связи с удаленной MySQL. От автоинкремента по понятным причинам отказался. Как узнать максимальное значение поля id? Традиционный запрос выглядит так:
SELECT MAX(id) FROM <table>
Программа начинает ругаться про отсутствующие поля.
Например, когда я пишу это на PHP и получаю массив из запроса, результат лежит в полеMAX(id)
. А вот как в DELPHI получить - не пойму всвязи со своей некоторой тупостью :)
← →
Vlad © (2004-11-09 10:05) [1]
> mfender © (09.11.04 09:59)
Query.Fields[0].AsInteger ?
← →
mfender © (2004-11-09 10:14) [2]
> Query.Fields[0].AsInteger ?
Спасибо за совет. Но он все равно ругается... Говорит "Field id not found".
← →
Vlad © (2004-11-09 10:19) [3]
> mfender © (09.11.04 10:14) [2]
странно...
попробуй запрос составить так:
select max(id) as id from ....
соотв. в дельфи значение можно взять по имени
Query.FieldByName("id").AsInteger
← →
Ricko © (2004-11-09 10:20) [4]
SELECT MAX(id) as MaxID FROM <table>
Query.FieldByName("MaxID").AsInteger
← →
Vlad © (2004-11-09 10:21) [5]
> mfender © (09.11.04 10:14) [2]
I>
кстати, кто генерит ошибку Field id not found, сервер или клиент?
А то может и правда такого поля в базе нет?
← →
Johnmen © (2004-11-09 10:32) [6]>От автоинкремента по понятным причинам отказался
Кому понятным ?
← →
mfender © (2004-11-09 10:55) [7]Спасибо. После долгого мытарства выяснилось, что он ругался по другой причине. Все поля таблицы были обозначены. Т.е. были TStringField, TIntegerField etc. В результате, не пойму почему правда, при запросе за значением из одного поля, программа начинала ругаться на отсутствие в TQuery других полей... Вот такая беда.
Пытался через TDatabase.Execute все это сделать, но что-то с BDE не ладится...
← →
mfender © (2004-11-09 10:58) [8]
> Johnmen © (09.11.04 10:32) [6]
> >От автоинкремента по понятным причинам отказался
>
> Кому понятным ?
Всем понятным. С детства знает даже школьник, как опасно для идентификации записей в БД пользоваться автоинкрементом.
← →
Соловьев © (2004-11-09 11:03) [9]
> Всем понятным. С детства знает даже школьник, как опасно
> для идентификации записей в БД пользоваться автоинкрементом.
Ужас... Где такие школы?
← →
Sergey13 © (2004-11-09 11:04) [10]2[8] mfender © (09.11.04 10:58)
>Всем понятным. С детства знает даже школьник, как опасно для идентификации записей в БД пользоваться автоинкрементом.
Вы в каком полку... Ой! В какой школе учились? 8-)
← →
Vlad © (2004-11-09 11:05) [11]
> mfender © (09.11.04 10:55) [7]
Ничего не понял... особенно как связан метод Execute и select-запрос?
Ну это не главное, важно что проблема, надеюсь, решилась :-)
> С детства знает даже школьник, как опасно для идентификации
> записей в БД пользоваться автоинкрементом.
ууу, брат, да это уже религия а не наука :-)
← →
Johnmen © (2004-11-09 11:10) [12]>mfender © (09.11.04 10:58) [8]
Ты забыл добавить ИМХО. Можешь с ним и оставаться, как и те самые школьники.
Пока больно не упал...
← →
mfender © (2004-11-09 11:21) [13]И все-таки, полагаю, "вручную" назначать идентификаторы записям лучше и надежнее, чем автоинкрементом. Есть основания. Уже обжигался. Думаю и другие обжигались. Когда БД приходилось восстанавливать из резерва. Впрочем, это тема для "потрепаться".
← →
Соловьев © (2004-11-09 11:31) [14]
> И все-таки, полагаю, "вручную" назначать идентификаторы
> записям лучше и надежнее, чем автоинкрементом
> SELECT MAX(id) FROM <table>
Это вручную??? Я еще понял бы если бы ты для человека вносил его паспортные данные или номер соц. защиты.
> Уже обжигался. Думаю и другие обжигались. Когда БД приходилось
> восстанавливать из резерва.
Так вот в чем проблема... Ты просто не умеешь востанавливать бекап. А то школы...пк... Лучше с восстановления бы и начинал, а не розводил полему про ПК...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.05 c