![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запись boolean в MS Access [D7, MS Access]
ALS © (2007-02-20 16:22:00)Есть база с несколькими таблицами, одна из них имеет автоинкрементный индекс, несколько строковых полей и логическое поле. Все поля кроме индекса могут быть BLANK. Необходимо добавлять к таблице записи.
Создал TADOQuery со следующим SQL:
INSERT INTO MainResult (
Operator, ChipName, NSet, Wafer, PassCard, ChipNumber, ChipResult)
VALUES (:POp, :PCNm, :PSt, :PWf, :PCrd, :PNum, :PRes)
Параметр PRes описал как ftBoolean. Пытаюсь выполнить запрос:
function TForm1.MainResult(const Op, CName, St, Waf, PC: string; Chip: integer; Res: boolean): boolean;
begin
with ADOQuery do
try
Parameters.Items[0].Value := Op;
Parameters.Items[1].Value := CName;
Parameters.Items[2].Value := St;
Parameters.Items[3].Value := Waf;
Parameters.Items[4].Value := PC;
Parameters.Items[5].Value := Chip;
Parameters.Items[6].Value := Res;
Result := ExecSQL > 0
except
Result := False
end;
end;
В результате имею EOleException 'Data type mismatch in criteria expression'. Вопрос: как правильно заносить данные в поле логического типа таблицы MS Access, используя TADOQuery
fd979 (2007-02-21 14:48:00) [1]Не обратил внимание на все комменты, соответственно.
sniknik (2007-02-21 14:45:00) [2]fd979 © (21.02.07 14:39) [7]
а что ты думаешь выдаст Ord(Res) из совета в [3]? соответственно.
fd979 (2007-02-21 14:39:00) [3]Вместо True и False ставь 1 и 0 соответственно.
sniknik (2007-02-21 00:24:00) [4]> В акцесе нет типа boolean
есть
MsGuns (2007-02-20 23:47:00) [5]В акцесе нет типа boolean
ALS (2007-02-20 23:10:00) [6]> Parameters.Items[6].Value := Ord(Res);
Попрововал для ftBoolean, получил тоже самое ('Несоответствие типов данных в выражении условия отбора' - русская винда) .
Для ftBytes, Size=1 получил 'Приложение использует для текущей операции значение неверного типа'.
Помогло ftVariant, Size=1.
Спасибо
Johnmen (2007-02-20 21:12:00) [7]Попробуй Parameters.Items[6].Value := Ord(Res);
ALS (2007-02-20 19:37:00) [8]Если я убираю из TADOQuery упоминания о последнем (boolean) параметре, все остальные поля прописываются нормально. При наличии этого параметра Query обламывается на ExecSQL.
А в чем еще может быть проблема?
Gin2 (2007-02-20 17:32:00) [9]почему ты решил что проблема именно там?