Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Одна ADOшная заморочка [D5, MS Access 2000]


СН ©   (2002-10-29 14:43:00) 

Почему-то не удается вставить в базку (Access 2000) в поле типа VARCHAR пустое значение, используя ADO Express.

Например,

var
s: string;
begin
Query1.Parameters.ParamByName("Field").Value := "";
// или так
s := "";
Query1.Parameters.ParamByName("Field").Value := s;
// в следующей строке вылазит ошибка о том, что параметр якобы
// неправильно определен
Query1.ExecSQL;

Если вместо "" поставить " " (пробел) - работает.

Не подскажете, в чем проблема ?


dim-   (2002-10-30 00:12:00) [1]

а может в базе на этом поле стоит "пустые строки нет"


СН   (2002-10-29 15:39:00) [2]

Пришлось пока сделать офигительную функцию:

function ADOSTR(asStr: string): Variant;
begin
Result := asStr;
if asStr = "" then Result := #0;
end;

Тогда

Value := ADOSTR(""); - ок


СН   (2002-10-29 15:00:00) [3]

Хм, Value := #0 - получилось
Но это частный случай, а как строку типа string пустую загнать ?


СН   (2002-10-29 14:59:00) [4]

Вот что помогает немного:

... := PChar(string)^;

но это же один символ, а не вся строка ...


stone   (2002-10-29 14:53:00) [5]

Попробуй присвоить значение null


СН   (2002-10-29 14:53:00) [6]

Не помогает :(
Странно, это должна быть весьма известная заморочка ...


alxx   (2002-10-29 14:53:00) [7]

А если попробовать Value:=#0?


Наверх

Титульная страница Поиск, карта сайта Написать письмо