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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
1-1100777872
termit
2004-11-18 14:37
2004.12.05
как удалить запись из файла?


14-1100713676
ИМХО
2004-11-17 20:47
2004.12.05
Турция - Украина. 17 ноября 2004 года.


4-1098514305
navyk
2004-10-23 10:51
2004.12.05
Использование мьютексов


11-1083328166
Max Kozlov
2004-04-30 16:29
2004.12.05
Application.Terminate


14-1100781713
NewDelpher
2004-11-18 15:41
2004.12.05
&amp;#1050;&amp;#1090;&amp;#1086; &amp;#1080;&amp;#1089;&amp;#1087;&amp;#1086;&amp;#1083;&amp;#1085;&amp;#1103;&amp;#1077;&amp;#1090; &amp;#1087;&amp;#1077;&amp;#1089;&amp;#1085;&amp;#110