Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2011.11.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.003 c
15-1310627957
R_R
2011-07-14 11:19
2011.11.13
Как работать с Windows VDS, что можно почитать?


15-1310761791
Юрий
2011-07-16 00:29
2011.11.13
С днем рождения ! 16 июля 2011 суббота


4-1251798761
Bordo
2009-09-01 13:52
2011.11.13
Подключение плагина на C++ к программе на Delphi


15-1310728734
Медвежонок Пятачок
2011-07-15 15:18
2011.11.13
winmobile netcf3.5 интернет с "толкача"


2-1311376887
prodex
2011-07-23 03:21
2011.11.13
insert в Oracle





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский