Форум: "Базы";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
ВнизВопрос по Query.Locate. Найти похожие ветки
← →
Andrey007 (2001-12-29 10:31) [0]Есть статический запрос. Нужно организовывать поиск по разным полям. Если я организовываю поиск по одному вещественному полю, то всё работает нормально, также как и когда поиск происходит по 5 полям, одно из которых символьное (Тип поля Char(25), тип программной переменной - String). Но вот когда я делаю поиск по двум символьным полям (оба типа Char(6)), то этот поиск работает только тогда, когда база является локальной (таблицы типа Paradox), то есть находится на том же компьютере, откуда запускается программа. А если поиск происходит в сетевой БД (сервер Oracle 8), то выполнение строки с Query.Locate приводит к появлению сообщения об ошибке "Operation not applicable.".
В целом дело обстоит так:
procedure Form1.Click(Sender: TObject);
var s1,s2: String;
begin
// тут происходит присвоение s1 и s2
if Query.Locate("CODE1;CODE2",VarArrayOf([s1,s2]),[]) then
begin
[...]
end
end;
s1 и s2 содержат заглавные русские буквы. Длина полей CODE1 и CODE2 - 6 символов. Причём в s1 и s2 в принципе не может быть более 5 букв, также как и в этих полях не может быть более 5 букв. Я предположив, что дело можно исправить дополнением s1 и s2 нужным числом пробелов, вставил перед Query.Locate дополнение пробелами:
if length(s1)<6 then
repeat
s1:=s1+" "
until length(s1)>=6;
if length(s2)<6 then
repeat
s2:=s2+" "
until length(s2)>=6;
Однако это не помогло,- по прежнему выполнение Query.Locate приводило к ошибке. Тогда я попробовал изменить тип s1 и s2 на String[6], но и это не помогло. Также не помогло и убирание добавления пробелов к s1 и s2 в испостаси String[6].
Что делать?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c