Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MAX(id) из DELPHI [D5, MySQL]


mfender ©   (2004-11-09 09:59:00) 

Использую MyODBC для связи с удаленной MySQL. От автоинкремента по понятным причинам отказался. Как узнать максимальное значение поля id? Традиционный запрос выглядит так:
SELECT MAX(id) FROM <table>
Программа начинает ругаться про отсутствующие поля.
Например, когда я пишу это на PHP и получаю массив из запроса, результат лежит в поле MAX(id). А вот как в DELPHI получить - не пойму всвязи со своей некоторой тупостью :)


Соловьев   (2004-11-09 11:31:00) [1]


> И все-таки, полагаю, "вручную" назначать идентификаторы
> записям лучше и надежнее, чем автоинкрементом


> SELECT MAX(id) FROM <table>

Это вручную??? Я еще понял бы если бы ты для человека вносил его паспортные данные или номер соц. защиты.

> Уже обжигался. Думаю и другие обжигались. Когда БД приходилось
> восстанавливать из резерва.

Так вот в чем проблема... Ты просто не умеешь востанавливать бекап. А то школы...пк... Лучше с восстановления бы и начинал, а не розводил полему про ПК...


mfender   (2004-11-09 11:21:00) [2]

И все-таки, полагаю, "вручную" назначать идентификаторы записям лучше и надежнее, чем автоинкрементом. Есть основания. Уже обжигался. Думаю и другие обжигались. Когда БД приходилось восстанавливать из резерва. Впрочем, это тема для "потрепаться".


Johnmen   (2004-11-09 11:10:00) [3]

>mfender ©   (09.11.04 10:58) [8]

Ты забыл добавить ИМХО. Можешь с ним и оставаться, как и те самые школьники.
Пока больно не упал...


Vlad   (2004-11-09 11:05:00) [4]


> mfender ©   (09.11.04 10:55) [7]

Ничего не понял... особенно как связан метод Execute и select-запрос?
Ну это не главное, важно что проблема, надеюсь, решилась :-)

> С детства знает даже школьник, как опасно для идентификации
> записей в БД пользоваться автоинкрементом.

ууу, брат, да это уже религия а не наука :-)


Sergey13   (2004-11-09 11:04:00) [5]

2[8] mfender ©   (09.11.04 10:58)
>Всем понятным. С детства знает даже школьник, как опасно для идентификации записей в БД пользоваться автоинкрементом.

Вы в каком полку... Ой! В какой школе учились? 8-)


Соловьев   (2004-11-09 11:03:00) [6]


> Всем понятным. С детства знает даже школьник, как опасно
> для идентификации записей в БД пользоваться автоинкрементом.

Ужас... Где такие школы?


mfender   (2004-11-09 10:58:00) [7]


> Johnmen ©   (09.11.04 10:32) [6]
> >От автоинкремента по понятным причинам отказался
>
> Кому понятным ?


Всем понятным. С детства знает даже школьник, как опасно для идентификации записей в БД пользоваться автоинкрементом.


mfender   (2004-11-09 10:55:00) [8]

Спасибо. После долгого мытарства выяснилось, что он ругался по другой причине. Все поля таблицы были обозначены. Т.е. были TStringField, TIntegerField etc. В результате, не пойму почему правда, при запросе за значением из одного поля, программа начинала ругаться на отсутствие в TQuery других полей... Вот такая беда.
Пытался через TDatabase.Execute все это сделать, но что-то с BDE не ладится...


Johnmen   (2004-11-09 10:32:00) [9]

>От автоинкремента по понятным причинам отказался

Кому понятным ?


Vlad   (2004-11-09 10:21:00) [10]


> mfender ©   (09.11.04 10:14) [2]
I>
кстати, кто генерит ошибку Field id not found, сервер или клиент?
А то может и правда такого поля в базе нет?


Ricko   (2004-11-09 10:20:00) [11]

SELECT MAX(id) as MaxID FROM <table>

Query.FieldByName('MaxID').AsInteger


Vlad   (2004-11-09 10:19:00) [12]


> mfender ©   (09.11.04 10:14) [2]

странно...
попробуй запрос составить так:
select max(id) as id from ....
соотв. в дельфи значение можно взять по имени
Query.FieldByName('id').AsInteger


mfender   (2004-11-09 10:14:00) [13]


> Query.Fields[0].AsInteger ?


Спасибо за совет. Но он все равно ругается... Говорит " Field id not found".


Vlad   (2004-11-09 10:05:00) [14]


> mfender ©   (09.11.04 09:59)  

Query.Fields[0].AsInteger ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо