![]() |
Ошибка Invalid Parameter!!!
Люди, помогите пожалуйста!Выскакивает ошибка Invalid Parameter при выполнении запроса выбора данных!приблизительный код :
Код:
query1.Close; 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 |
попробуй так:
query2.SQL.Add(Format('SELECT A FROM " %s " where B = 100 ', [dir]); |
Alan85, Спасибо за вариант, но с ним тоже, увы, строка запроса имеет такой же вид, и запрос не выполняется :(
|
1. Попробуйте задавать ваш dir сразу с двойными кавычками
Код:
const dir = ' "D:\aaa.dbf" ' Код:
query2.SQL.Add('SELECT A FROM '+dir+' where B = 100 ') Код:
'SELECT A FROM "" WHERE B = 100'#$D#$A Если объявляли константу с двойными кавычками сразу, то получите другое сообщение об ошибке. |
Вложений: 1
Вот пример перекрытия константы.
|
Цитата:
Попробовал, сообщение Invalid Use of keyword WHERE....!запрос выглядит так : Код:
'SELECT A FROM WHERE B = 100'#$D#$A Код:
B := '100' //переменная типа string Код:
'SELECT A FROM " " WHERE B = '#$D#$A Код:
strQuery := 'SELECT A FROM "D:\aaa.dbf" WHERE B = 100'; |
Вложений: 1
выложите свой код, и версию среды укажите. Query стандартный от BDE? Этот пример (см.вложние) у Вас работает?
|
Есть еще одна бредовая мысль, но ввиду отсутствия других вариантов я ее выскажу:
Может в каком-нибудь используемом модуле переопределен тип String так чтобы длина постоянно была равна нулю? |
Цитата:
Работает все почему то кроме этого куска кода! Вот что еще оказывается : в этом куске кода query2 создается программно! попробовал добавить на форму Query( Query3), и поменял query2 на query3, все нормально обрабатывается и выполняется!Может ли это быть каким либо багом?Еще люди советуют перезагрузить комп, может ли это влиять? :dont-know З.Ы. Комп работает уже дня 3 - 4, и среда тоже! |
Дайте же посмотреть этот кусок кода от места где Query2 создается программно до его открытия. Может там чего и намудрили? Чудес в коде не бывает.
|
Код:
query := TQuery.Create(nil); |
а если так:
Код:
query2.SQL.Add('SELECT DISTINCT KPZV FROM "' + PZV + '"); |
Это должно работать. У меня работает. Больше вариантов нету. Но появился вопрос. Если у меня есть запрос, в котором 60 параметров, и на этапе выполнения ExecSql я получаю ошибку - invalid parameter, то как мне узнать какой именно параметр не в порядке?
|
Alan85, тоже не помогает!
Дело еще, оказывается, в том, что этот код не работает на определенном компе, пробовал на других все работает отлично!и вдобавок, не работает тока с созданными в коде query!пока что заменил на query, добавленный визуально, но все равно буду разбираться дальше!всем большое спасибо, за помощь! |
Время: 16:24. |
Время: 16:24.
© OSzone.net 2001-