Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Ошибка Invalid Parameter!!!

Ответить
Настройки темы
Delphi - Ошибка Invalid Parameter!!!

В Поисках Истины


Сообщения: 802
Благодарности: 135


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: LilLoco
Дата: 14-09-2010
Описание: Добавление инфы
Люди, помогите пожалуйста!Выскакивает ошибка Invalid Parameter при выполнении запроса выбора данных!приблизительный код :

Код: Выделить весь код
query1.Close;
query1.SQL.Add(тут что то выбираем);
query1.open;
//выполняем цикл по всему выбранному
while not query1.eof do
begin
      ........................... //что нибудь делаем
      query2.close;
      query2.SQL.Add('SELECT A FROM " ' + dir + ' " where B = 100 ')
 (*)  query2.open;
       ....................      //что нибудь делаем
       query2.close;
      ...........................//что нибудь делаем
      query1.next;
end;
при выполнении данного куска, на строке (*) вылетает ошибка!
dir - константа,указывающая таблицу!

Код: Выделить весь код
const dir : string = 'D:\aaa.dbf';
Но вот ищо один момент, если в строке (*), в запрос вбить все не используя переменные и константы :

Код: Выделить весь код
query2.SQL.Add('SELECT A FROM "  D:\aaa.dbf " where B = 100 ')
то все хорошо обрабатывается, и никаких ошибок! в чем причина этого???раньше такого не было в других кусках кода, почти идентичных этому!

посмотрел строку sql - запроса перед его выполнением, она почему то имеет такой вид :


Код: Выделить весь код
'SELECT A FROM "" WHERE B = 100'#$D#$A

Отправлено: 14:45, 14-09-2010

 

В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
query := TQuery.Create(nil);
  query2 := TQuery.Create(nil);
  opentable2(table,TEMP_PROMBASE);
  SelectWhere(query,'DISTINCT*',TKMEH,'zakaz = ' + zakaz + ' and xkb59 = "' + detal + '"');
  while not query.Eof do
  begin
    table.Insert;
    table.FieldByName('zakaz').AsString := query.FieldByName('zakaz').AsString;
    table.FieldByName('detal').AsString := query.FieldByName('xkb59').AsString;
    table.FieldByName('kolvo').AsString := IntToStr(Count);
    table.FieldByName('oper').AsString := query.FieldByName('noper').AsString;
    table.FieldByName('cex').AsString := Copy(query.FieldByName('zehus').AsString,0,2);
    shifr := query.FieldByName('xko99').AsString;
    table.FieldByName('shifr').AsString := shifr;
    if ((Length(shifr) = 2) or (Length(shifr) = 3)) then
    begin
      table.FieldByName('norma').AsString := query.FieldByName('norma').AsString;
      query2.Close;
      query2.SQL.Clear;
      query2.SQL.Add('SELECT DISTINCT KPZV FROM "' + PZV + '" WHERE KODOB = ' + shifr);
      query2.Open;     //ошибка на этой строчке
      table.FieldByName('pzv').AsString := query2.FieldByName('KPZV').AsString;
      query2.Close;
      ..............................
Вот кусок кода ))

Отправлено: 16:29, 15-09-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Alan85

Забанен


Сообщения: 463
Благодарности: 91

Профиль | Цитировать


а если так:
Код: Выделить весь код
query2.SQL.Add('SELECT DISTINCT KPZV FROM "' + PZV + '");

query2.SQL.Add('WHERE KODOB = ' + shifr);

Отправлено: 17:30, 15-09-2010 | #12


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Это должно работать. У меня работает. Больше вариантов нету. Но появился вопрос. Если у меня есть запрос, в котором 60 параметров, и на этапе выполнения ExecSql я получаю ошибку - invalid parameter, то как мне узнать какой именно параметр не в порядке?

Отправлено: 17:55, 15-09-2010 | #13


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Alan85, тоже не помогает!

Дело еще, оказывается, в том, что этот код не работает на определенном компе, пробовал на других все работает отлично!и вдобавок, не работает тока с созданными в коде query!пока что заменил на query, добавленный визуально, но все равно буду разбираться дальше!всем большое спасибо, за помощь!

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 07:33, 16-09-2010 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Ошибка Invalid Parameter!!!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - [решено] invalid partition table Vaho83 Накопители (SSD, HDD, USB Flash) 15 08-03-2013 19:20
Разное - invalid partition table jckson05 Microsoft Windows 2000/XP 21 02-08-2011 19:49
Debian/Ubuntu - invalid encoding в названиях файлов allin1 Общий по Linux 6 14-06-2010 02:52
Router - Invalid Mac adress antikiller_bm Сетевое оборудование 0 18-02-2010 02:21
Invalid system disky, I/O errory... AR Microsoft Windows 95/98/Me (архив) 20 15-02-2005 23:52




 
Переход