C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как сравнить поля в таблице типа Varchar как числа
Topik
Отправлено: 14.07.2004, 11:56


Дежурный стрелочник

Группа: Участник
Сообщений: 45



Есть поле типа VARCHAR, в нем хранятся числовые значения (так надо).
В програмулине надо искать значения в этом поле между двумя числами.
Как это сделать?
StrToInt уже пробывал, не помогло, а может я его не так применял?? biggrin.gif
AVC
Отправлено: 14.07.2004, 12:39


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
StrToInt уже пробывал, не помогло, а может я его не так применял??

Скорее всего да. Как альтернативу можно попробовать Like, но помните, что в общем случае сортировка по алфавиту (при поиске по диапазону) не равна сортировке по величинам. Т.е. 10 идет после 1 но до 2.
Gedeon
Отправлено: 14.07.2004, 15:06


Ветеран

Группа: Модератор
Сообщений: 1742



Какой сервер БД у Вас то? Лучше всего делать выборку из базы прямо в запросе преобразовав тип данных. Всю жизнь меня умные люди учили перекладывать на сервер все, что только можно, разумно, конечно.
В общем напишите какой сервак, а дальше будем решать Вашу проблему smile.gif и пытаться оптимизировать скорость.
Topik
Отправлено: 14.07.2004, 15:36


Дежурный стрелочник

Группа: Участник
Сообщений: 45



сервер у меня MySQL
olegenty
Отправлено: 14.07.2004, 15:51


Ветеран

Группа: Модератор
Сообщений: 2412



Gedeon прав на 100%
там по любому должно быть

CODE

SELECT ..., CAST (<твоё поле> AS INTEGER)
...
WHERE CAST (<твоё поле> AS INTEGER) BETWEEN ...


любой сервер это съест. BETWEEN можно сменить на "<"/">"
Topik
Отправлено: 14.07.2004, 16:27


Дежурный стрелочник

Группа: Участник
Сообщений: 45



Спасибо, помогло

Вернуться в Работа с базами данных в C++Builder