Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Ошибка при изменении данных...


Автор: @ntosha 11.2.2007, 15:03
MySQl
ADO
ODBC
 
В общем проблема следующая. При попытке удалить или изменить запись базы данных вылетает ошибка типа : "you have an error in your sql sintax; check the manual that corresponds to your mysql version for the right sintax to use near 'key=5 and data='data'at line 1'". изменения производятся простым редактированием в DBGrid.
 При добавлении новой строки никаких ошибок нет. 
Подскажите можно ли так изменять данные, и можно ли использовать например, DBEdit?
 

Автор: Rodman 11.2.2007, 15:24
@ntosha, запрос в студию...

Автор: @ntosha 11.2.2007, 15:52
Код

select * from testbase.table2;

Запрос при работе проги не изменяется.

Автор: Rodman 11.2.2007, 15:54
а такой запрос сработает???

Код

select * from table2;

Автор: @ntosha 11.2.2007, 16:04
Цитата(Rodman @ 11.2.2007,  13:54)

Код

select * from table2;

Не работает. А вообще можно вносить изменения в базы без Sql запросов???
Т.е с помощью компонентов Data Controls. С базами Access это работало.

Автор: @ntosha 6.3.2007, 11:56
Блин, ну может у кого пример работы с MySql через ODBC есть, выложите плиз!!!  smile  

Автор: DimW 6.3.2007, 12:30
Цитата(@ntosha @  11.2.2007,  16:04 Найти цитируемый пост)
Не работает. А вообще можно вносить изменения в базы без Sql запросов???

лучше не надо!!!


скажите @ntosha, в table2 первичный ключ присутствует? именно первичный ключ!!!
такое чувство что при апдейте ODBC просто не может идентифицировать изменяемую позицию. 

Автор: SergeBS 6.3.2007, 15:44
@ntosha, 
Читай FAQ по программированию для MySQL - там настройки MyODBC - где какие галочки надо поставить. Не найдешь - так и быть - прогуляюсь к юзерам и у них посмотрю. Это мне не шибко близко - минут 40, так что лениво. И быстро не обещаю.
Да, у меня во всех таблицах есть уникальное ключевое поле. Это для ADO обязательно.
У меня связка MySQL 4.1 (5.0 тоже работает) - MyODBC-3.51.11-2-win - ADO(MDAC 2.8) - Delphi 7.

Автор: SergeBS 6.3.2007, 16:01
@ntosha, 
Вдогонку:
ADO = SQL. И никак иначе. Т.е. при любых манипуляциях с данными ADO формирует соответствующий SQL-запрос.

Автор: @ntosha 12.3.2007, 06:30
Первичный ключ присутствует.
Подскажите плиз, где этот FAQ найти?

Автор: SergeBS 12.3.2007, 08:32
@ntosha, 
http://www.realcoding.net/article/rubric/db/MySQL_ODBC_MyODBC
Паутов очень неплохо все описал для кучи языков.

Добавлено @ 08:35 
Вообще, чтобы не было мороки с ADO, надо иметь именно поле уникальное, и лучше - autoincrement. Его значение тогда автоматом при вставке обратно на клиента приходит и никаких проблем с потерей записи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)