powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / BCB + BDE + TQuery
8 сообщений из 8, страница 1 из 1
BCB + BDE + TQuery
    #32317567
123456789098
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.
Народ помогите кто чем может. Приму к рассмотрению даже самые бредовые идеи.

Суть проблемы такова.
Есть функция

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
bool Tf_Main::DiscardingFromAvailability(int ProductID,float &Count,AnsiString AvailabilityTableName){

   q_DiscardingFromAvailability->Active=false;
   q_DiscardingFromAvailability->SQL->Clear();
   q_DiscardingFromAvailability->SQL->Add( "SELECT mrt.ProductID,mrt.prCount" );
   q_DiscardingFromAvailability->SQL->Add( "FROM \"  "+AvailabilityTableName+" .db\ " mrt" );
   q_DiscardingFromAvailability->SQL->Add( "WHERE (mrt.ProductID=" +IntToStr(ProductID)+ ")" );
   q_DiscardingFromAvailability->Active=true;
   .
   .
   .

И вот эта функция 3 месяца работала без проблем и вот буквально вчера начала вылетать с сообщением "Invalid parameter.".
Причем ругается именно на открытие данных
Код: plaintext
q_DiscardingFromAvailability->Active=true;
.
Функция до ошибки функция выполняется многоо раз.

Текст запроса выглядит следующим образом

Код: plaintext
1.
2.
SELECT mrt.ProductID,mrt.prCount
FROM  "C:\ASH\DISCARDING\EXEDLL\_QTT_0.db"  mrt
WHERE (mrt.ProductID= 351 )


Вот что я уже перепробовал:
1) Изначально проект был написан на BCB5. Я переконвертил под BCB6 ... результат тот же.
2) Изначально Каждый раз при заходе в функцию создавался новый объект класса TQuery,
а в конце функции этот объект разрушался.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TQuery *Q=new TQuery(NULL);
   Q->Active=false;
   Q->SQL->Clear();
   Q->SQL->Add( "SELECT mrt.ProductID,mrt.prCount" );
   Q->SQL->Add( "FROM \"  "+AvailabilityTableName+" .db\ " mrt" );
   Q->SQL->Add( "WHERE (mrt.ProductID=" +IntToStr(ProductID)+ ")" );
   Q->Active=true;
   .
   .
   .
   delete Q;

Я описал указатель на объект в объявлении класса формы и создал его один раз
(получилось как написал в самом начале сообщения) ... результат тот же.
3)Пробовал ловить исключение вот что из него вытянул:
ClassName="EDBEngineError"
HelpContext=""
Message="Invalid parameter."

Мне както этой информации оказалось мало чтоб понять где собака порылась ...
4)Было подозрение что в строке
Код: plaintext
FROM  "C:\ASH\DISCARDING\EXEDLL\_QTT_0.db"  mrt

кто то глючит и воспринимает ":" как параметр в запросе и оставил только имя файла таблицы без полного пути.
Результат тот же кромего у запроса свойство ParamCount=0

5)Повторные попытки выполнить SQL запрос после ошибки оканчиваются той же ошибкой не зависимо этоим же объектом или создается другой, но в это же время тот же запрос из скажем SQL Explorer выполняется без проблем.

Вот вроди все что я пробовал сделать. Обойти это все конечно можно, но хотелось бы до сути докопаться.
...
Рейтинг: 0 / 0
BCB + BDE + TQuery
    #32317589
Evgenye
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изменения в структуре базы были?
...
Рейтинг: 0 / 0
BCB + BDE + TQuery
    #32317608
123456789098
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в тех таблицах с которыми работаю точно не было. и к тому же до того как начать выдавать ошибку эта функция успешно отрабатывает десятка два раз ...
...
Рейтинг: 0 / 0
BCB + BDE + TQuery
    #32318324
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конектишься не через АДО???
Felix
...
Рейтинг: 0 / 0
BCB + BDE + TQuery
    #32318353
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ParamCheck = true ???
_____________
__
...
Рейтинг: 0 / 0
BCB + BDE + TQuery
    #32318635
123456789098
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ©Felix
Нет через BDE

2 JibSkeart
ParamCheck - по умолчанию. в смысле я его не менял после конструктора. сейчас попробую поэексперементировать с ним
...
Рейтинг: 0 / 0
BCB + BDE + TQuery
    #32319032
SGV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помоему ты тут в кавычках запуталса!!!
Попробуй SQL запрос в одно предложение записать!!!


TQuery *Q=new TQuery(NULL);
Q->Active=false;
Q->SQL->Clear();
Q->SQL->Add("SELECT mrt.ProductID,mrt.prCount \
FROM '"+ AvailabilityTableName +"' .db mrt \
WHERE mrt.ProductID = '" + IntToStr(ProductID) +"'");
Q->ExecSQL();
Q->Active=true;
.
.
.
delete Q;
...
Рейтинг: 0 / 0
BCB + BDE + TQuery
    #32319914
123456789098
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем кто проявил участие и пытался помочь.
Проблема решилась. После 3х дней взаимной любви с программой и нулевым результатом наконец настали похороны Windows (ставил ее еще весной, за время работы 3 раза менял машину, а винт просто переставлял и доставлял драйвера. как результат она начала глючить и давно надо было переставить, но небыло времани. а вчера перестал эксплоер запускаться). Так вот переформатировал я винт, переставил виндозу, установил на нее билдер. Перекомпилил исходники из резервной копии и все заработало.
На кого винить даже не знаю.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / BCB + BDE + TQuery
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]