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

Вниз

MySQL и несколько insert-ов   Найти похожие ветки 

 
Раиса ©   (2010-02-15 15:14) [0]

В программе пишу так (использую ADOQuery):
START TRANSACTION; insert into table1 ......; insert into table2 ...;  COMMIT;
Выдается синтаксическая ошибка. Если текст запроса сохраняю в файле, а затем его выполняю через SQLyog (например), то всё записывается в таблицы.
Помогите, пожалуйста, найти ошибку.


 
Виталий Панасенко(дом)   (2010-02-15 15:16) [1]

да просто это скрипт, я так понимаю... SQLyog это чудо умеет их выполнять, а компоненты АДО - нет.. только одну команду.. я так думаю


 
12 ©   (2010-02-15 15:18) [2]

а так если?

 ADOConnection1.BeginTrans;
 ADOQuery1.ExecSQL;
 ..
 ADOQuery1.ExecSQL;
 ADOConnection1.CommitTrans;


 
Раиса ©   (2010-02-15 15:37) [3]

Спасибо за ответы.

> 12 ©   (15.02.10 15:18) [2]

Вроде бы нормально.


 
Ega23 ©   (2010-02-15 15:41) [4]

Совет: убери TADOQuery, используй для данной операции TADOCommand


 
12 ©   (2010-02-15 15:48) [5]


> используй для данной операции TADOCommand

+1


 
Раиса ©   (2010-02-15 16:31) [6]


> Ega23 ©   (15.02.10 15:41) [4]


> 12 ©   (15.02.10 15:48) [5]

А с помощью TADOCommand  можно будет весь запрос через ; написать?


 
Ega23 ©   (2010-02-15 16:34) [7]


> А с помощью TADOCommand  можно будет весь запрос через ;
>  написать?


Нет, должна быть атомарность команд.
Речь о том, что TADOQuery это гибрид TADOCommand и TADODataSet в одном флаконе. Со всеми достоинствами, но также и со всеми недостатками. Введён исключительно ради совместимости со старыми BDE-шными проектами.


 
12 ©   (2010-02-15 16:38) [8]

чего еще добавить :)
+1

старый фидошный анекдот:
Народ, пошли пиво пить?
+1
+1
..
+1


 
sniknik ©   (2010-02-15 20:18) [9]

> А с помощью TADOCommand  можно будет весь запрос через ; написать?
а зачем тут? у mysql в одном инсерте позволительна массовая вставка. вроде бы...
вот был бы у тебя mssql тогда можно было бы (но и там не нужно бы).

> Со всеми достоинствами
??? это какими?
недостатки видел, достоинств ни одного...


 
sniknik ©   (2010-02-15 20:19) [10]

а понял, у тебя 2 таблицы... не обратил внимания.


 
Раиса ©   (2010-02-16 09:07) [11]

> 12 ©   (15.02.10 15:18) [2]
Воспользовалась этим советом. Вроде бы откатывается транзакция в случае ошибок.
А так хотелось весь запрос через ;  написать как в MS SQL, но пришлось писать:
ADOQuery1.ExecSQL;
..
ADOQuery1.ExecSQL;


 
12 ©   (2010-02-16 10:11) [12]


> откатывается транзакция

куда ж она денется, когда разденется


> хотелось весь запрос через ;  написать

там программа (SQLyog? или как там)наверняка распарсивает строку, и делеает так же,
begintran
ExecSQL
ExecSQL
committran


> > Со всеми достоинствами
> ??? это какими?
> недостатки видел, достоинств ни одного...

это какие?


 
Ega23 ©   (2010-02-16 10:22) [13]


> Со всеми достоинствами
> ??? это какими?
> недостатки видел, достоинств ни одного...


А достоинство только одно - поддержка старых BDE-шных проектов.


 
sniknik ©   (2010-02-16 11:33) [14]

> поддержка старых BDE-шных проектов.
имхо, но это тоже недостаток, т.к. он не поддерживает, а только "делает вид". чем делать криво, уж лучше бы не делал ничего... и тогда бы армия "начинающих", но знакомых почему то с BDE программистов, вынуждена была бы учится, а не просто тупо заменять компоненты. (не было бы возможности такого самообмана, типа "взял новое, значит работаю по новому". а на самом деле по старой логике, и с исковерканным пониманием)

а когда знаешь, то заменить одно на другое нет проблем пусть даже TTable на TADODataSet (и даже также криво но быстро как с этими поддержками BDE, но тут хоть с полным осознанием кривизны. а можно чуток подольше но нормально).


 
Ega23 ©   (2010-02-16 11:37) [15]

Коль, давай не будем холивара начинать? Тем более, что я не фанат TADOQuery, как ты заметил... :)



Страницы: 1 вся ветка

Текущий архив: 2011.11.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
2-1311531794
Leon-Z
2011-07-24 22:23
2011.11.13
TWebBrouser.


2-1311057279
RWolf
2011-07-19 10:34
2011.11.13
Баг обхода контролов на форме по клавише Tab


2-1311114807
alexdn
2011-07-20 02:33
2011.11.13
Снять координаты курсора


15-1311009842
istok
2011-07-18 21:24
2011.11.13
что может приводить к проблемам с клавой..?


2-1311246212
arturich
2011-07-21 15:03
2011.11.13
Вопрос по DevExpress