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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2011, 09:23   #1
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию Неверный результат запроса

Здравствуйте.
БД- MS Access, подключение ADO, Delphi7
Пишу запрос:
Код:
ADOQuery_Temp.Close;
ADOQuery_Temp.SQL.Text:='DELETE * FROM [SiteUsers]';
ADOQuery_Temp.ExecSQL;
ADOQuery_Temp.Close;
ADOQuery_Temp_afarm.Close;
ADOQuery_Temp_afarm.SQL.Text:='INSERT INTO SiteUsers ([Key],[ID],pwd,[system],[Type],category,fullname,[email],address,'+
'rnn,bank,phone,fax,[payment],[shipment]) IN "./Temp.mdb" SELECT [код],[ID],pwd,0,[type],[category],fullname,email,'+
'address,rnn,bank,phone,[Сальдо конечное],[payment],[shipment] FROM контрагент WHERE ((category is Not Null) AND (имя Like "%WWW%"))';
ADOQuery_Temp_afarm.ExecSQL;
ADOQuery_Temp_afarm.Close;
и каждый раз в таблице SiteUsers разное количество строчек, причем таблица "Контрагент" вообще ни как во время выполнения прогрммы не используются.
Если делаю запрос в аксесе то всегда возвращает правильное количество записей.
Пробовал ставить Sleep, application.processmesage. не помогает.
В чем может быть проблема?
S@fer вне форума Ответить с цитированием
Старый 08.02.2011, 09:54   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Я бы вместо
Код:
'DELETE * FROM [SiteUsers]
написал
Код:
truncate table [SiteUsers]
Попробуй использовать один и тот же ADOQuery_Temp в обоих запросах

Последний раз редактировалось _SERGEYX_; 08.02.2011 в 09:59.
_SERGEYX_ вне форума Ответить с цитированием
Старый 08.02.2011, 10:27   #3
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Удалется из таблицы нормально
Таблицы в разных БД, поэтому использую разные подключения и Query
S@fer вне форума Ответить с цитированием
Старый 08.02.2011, 11:55   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

логика расстановки как круглых, так и квадратных скобочек убила
имхо единственное место где следовало бы что-то обрамлять - это поле "имя"

к счастью, я не знаю для чего вот это
Цитата:
IN "./Temp.mdb"
вставлено в запрос - может загвоздка здесь?!

а в принципе, стоит подергать сам селект на той базе и посмотреть на count(*), который он возвращает и оценить - кол-во то больше, то меньше или постоянно растет? может все-таки с "той базой" что-то делается?! сказок-то не бывает
soleil@mmc вне форума Ответить с цитированием
Старый 08.02.2011, 13:48   #5
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Поставил паузу в 5 сек. после вставки перед закрытием Query. вроде стало нормально работать. результат одинаковый выдает.
S@fer вне форума Ответить с цитированием
Старый 08.02.2011, 14:06   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

А зачем вообще его закрывать после ExecSQL? Обычно старый запрос закрывают перед использованием следующего...
_SERGEYX_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
результат запроса Ko$tello БД в Delphi 7 18.04.2012 12:13
Запрос выдает неверный результат Sergio_O БД в Delphi 14 13.01.2011 12:17
Java.iReport.В блоке detail выводится неверный результат. Может кто знает, как верно. Aida_K JavaScript, Ajax 0 10.10.2010 17:00
Почему сумма выдает неверный результат? KNatalia Microsoft Office Excel 4 26.05.2010 14:50
В чем ошибка в запросе?неверный результат =( Lunatikus SQL, базы данных 3 26.11.2007 09:50