![]() |
|
Модераторы: Akina |
![]()
|
|
| Artemon |
|
|||
|
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Для выполнения любых SQL запросов использовал следующую конструкцию:
Вссе шло отлично до того момента, как мне захотелось выполнить следующий запрос: INSERT INTO TMP_ARTISTS SELECT ID_GENRE, ARTIST FROM ARTISTS WHERE ARTIST = QueryArtists->FieldByName("ARTIST")->Value Когда делаю запрос - в таблицу вставляются по две копии одной записи. Я даже знаю с чем это связанно: С тем, что сначала выполняется: ADOQuery->Open(); а затем еще и ADOQuery->ExecSQL() Как этого избежать? -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Или ADOQuery->Open(); - если нужен результат
или ADOQuery->ExecSQL() - если нужно выполнить действие но ничего читать не надо. Оба оператора приводят к выполнению запроса дважды -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| bas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 14.8.2002 Где: Молдова, Кишинев Репутация: 1 Всего: 2 |
||||
|
||||
| Artemon |
|
|||
|
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Vit, это я знаю, но как быть если запрос делает вставку в таблицу и при этом совершает выборку из другой таблицы - в этом-то и загвоздка. Bas, конструкцию, которую ты предлагаешь - может использоваться только с операторами выборки, но не как не модификации. Добавлено @ 16:43 Vit, я специально привел кусок кода который делает следующее: Если мы делаем выборку - то выполняется только метод Open, если мы вносим изменения в таблицу - то выполняется только ExecSQL(). Это сообщение отредактировал(а) Artemon - 2.2.2006, 16:40 -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
| bas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 14.8.2002 Где: Молдова, Кишинев Репутация: 1 Всего: 2 |
|
|||
|
||||
| Artemon |
|
|||
|
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Кто-нибудь может быть уже посмотрит на кусок кода на C++Builder в первом топике.
Этот код не противоречит всему тому что было сказано в этой теме. Я хочу узнать каким способом выполнить код: INSERT INTO TMP_ARTISTS SELECT ID_GENRE, ARTIST FROM ARTISTS WHERE ARTIST = 'NEW ARTIST' Ведь он сразуже выполняет и выборку (SELECT) и изменение таблицы методом INSERT. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Хм... А разве я говорил что Open не может выполнить Insert? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| bas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 14.8.2002 Где: Молдова, Кишинев Репутация: 1 Всего: 2 |
||||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |