Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2010, 11:56   #1
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию Delphi+MySQL = запросы

Есть приложение, работающее с базой данных MySQL. Использую запросы с параметром. Но возникла странная ситуация - некоторые запросы работают, а некоторые нет. Вот пример запроса:
Код:
SELECT abonents.id_abonent, abonents.surname, abonents.ip_adress
FROM abonents
WHERE abonents.surname=:s
abonents - это таблица в базе.
То есть есть форма, на ней поле с выпадающим списком, в котором находятся фамилии абонентов. При выборе одного абонента в запрос в параметр s должна передаваться фамилия и выполняться запрос, в котором в сетку должна отобразиться информация об абоненте. Данный запрос так не работает. Но если в этом запросе вручную прописать фамилию, по которой осуществлять запрос, то он уже работать будет. Я не могу понять, в чем причина, ведь аналогичный запрос с параметром у меня работает (там только уже используются другие таблицы). Надеюсь, я понятно разъяснила ситуацию.
Alana вне форума Ответить с цитированием
Старый 15.10.2010, 12:41   #2
D.O.G
Форумчанин
 
Регистрация: 06.08.2010
Сообщений: 101
По умолчанию

В предыдущем запросе данные кирилица или латиница? Кирилицу Mysql нормально воспринимает?
D.O.G вне форума Ответить с цитированием
Старый 15.10.2010, 13:08   #3
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию

В предыдущем запросе....мммм.... Кирилица наверное...там у меня вообще в запрос в параметр передаются данные такого характера: 10.1.1.1
Получается, как будто он ничего не находит в таблице, но на самом-то деле есть в таблице всё.
Такой запрос выполняться будет:
Код:
SELECT abonents.id_abonent, abonents.surname, abonents.ip_adress
FROM abonents
WHERE abonents.surname=:s
Все, я поняла, не выполняется запрос, если данные кирилицей представлены. А латиницей работают. Но это в варианте с параметром. Если в запросе установлено, по какому значению искать, т.е. жестко прописано, то запрос уже отрабатывает. Подскажите, как исправить.

Последний раз редактировалось Stilet; 15.10.2010 в 19:59.
Alana вне форума Ответить с цитированием
Старый 15.10.2010, 19:47   #4
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

Сразу после соединения с базой дайте команду (например через TQuery) set names cp1251.
Цитата:
MyQUERY1.SQL.Clear;
MyQUERY1.SQL.Append('SET NAMES cp1251');
MyQUERY1.Execute;
В некоторых компонентах для соединения с MySQL вместо этой команды можно использовать специальный параметр.
SELECT BEST FROM LIFE
Dimasw вне форума Ответить с цитированием
Старый 16.10.2010, 21:09   #5
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию

Пробовала так. Но при компиляции вылетает ошибка:
Project Project1.exe rased exception class EOleException with message '[MySQL][ODBC 5.1 Driver][mysqld-5.1.39-log]SET NAMES not allowed by driver'. Process stopped. Use Step or Run to continue.
Alana вне форума Ответить с цитированием
Старый 17.10.2010, 00:43   #6
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

Используйте компоненты MyDac. У многих проблемы с MySQL если соединение идет через ADO. А там в компоненте MyConnection назначьте кодировку обмена данными.
SELECT BEST FROM LIFE
Dimasw вне форума Ответить с цитированием
Старый 17.10.2010, 19:07   #7
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию

Если мне память не изменяет, компонент MyDac вроде платный. Нет?
Хотела поставить компоненты Zeos, но не получилось. Вернее вроде поставились они, но не работают, если поместить на форму. Хотя когда-то ставила их, и они нормально работали.

Просто как-то не понятно, почему из-за кодировки, если в запросе поставить название улицы вручную, то все работает.

Последний раз редактировалось Alana; 17.10.2010 в 19:11.
Alana вне форума Ответить с цитированием
Старый 18.10.2010, 01:25   #8
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

MySQL платный (если используете с коммерческой целью), Delphi платный да и Windows тоже платный. Неужели Вам не знакомо слово "халява"? Которой в интернете полно... Кто ищет - тот найдет. С Zeos я как-то не подружился, а MyDAC рулит.
SELECT BEST FROM LIFE
Dimasw вне форума Ответить с цитированием
Старый 18.10.2010, 08:28   #9
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию

Слово "халява" вполне знакомо. Только на данном этапе мне никак нельзя использовать платные компоненты. Кстати, Zeos переустановила, встали нормально. Но раньше, чтобы данные из таблиц MySQL выводились на русском в ZConnection в свойствах ставила Cpdepage=UTF8. А теперь пришлось ставить Codepage=cp1251. Только так отображаются русские данные, хотя кодировка на MySQL стоит UTF8
Alana вне форума Ответить с цитированием
Старый 19.10.2010, 22:34   #10
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

Цитата:
Сообщение от Dimasw Посмотреть сообщение
MySQL платный (если используете с коммерческой целью), Delphi платный да и Windows тоже платный. Неужели Вам не знакомо слово "халява"? Которой в интернете полно... Кто ищет - тот найдет. С Zeos я как-то не подружился, а MyDAC рулит.
Как будто MyDAC бесплатный
Вот недавно его поставил, так при загрузке Delphi вылезает матюк, что "MyDAC trial 60 дней". И всё.
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL - запросы в Delphi zetrix БД в Delphi 41 08.06.2010 14:07
MySQL. Многотабличные запросы GenbI4 Помощь студентам 4 12.11.2009 13:00
DeLphi +Mysql запросы ! Flanker13 БД в Delphi 10 06.04.2009 15:30
Запросы SQL в Delphi antoni БД в Delphi 13 02.09.2008 00:53