Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Базы данных.


Автор: X-Vlad 17.4.2003, 00:02
база Парадокс

пытаюсь удалить запись в таблице:
Код

al:=''''+edit1.text+'''';
with query1 do
   begin
    sql.Clear;
    sql.Add('DELETE FROM '+basename);
    sql.Add(' WHERE all_ = '+al);
    execsql;
    sql.Clear;
    sql.Add('SELECT * FROM '+basename);
    open;


ALL_ - типа Memo.

Вискакивает ошибка:

EBDEngineError with message 'Type mismatch in expression'

пробовал делать:
Код

query1.delete;


ошибка:

"table is read-only"

помогите.



Автор: Vit 17.4.2003, 06:28
В конструкции Where недопустимо использование полей типа Memo. Вторая ошибка связана с первой.

Автор: X-Vlad 17.4.2003, 08:29
есть какой-то выход из етой ситуации?

Автор: man2002ua 17.4.2003, 09:23
Попробуй использовать при сравнении не все Memo, а часть его. Например substr(Memo,1,4)="blob".
точную конструкцию не скажу - Парадокса не знаю, но в MSSQLServere такое катило.

Автор: X-Vlad 17.4.2003, 13:54
Цитата
Попробуй использовать при сравнении не все Memo, а часть его.

в том то и дело что мне надо сравнить всё мемо... sad.gif

Автор: man2002ua 17.4.2003, 14:00
Ну попробуй так substr(Memo,1,len(Memo))='MEMO'

Автор: Pakshin A. S. 17.4.2003, 17:47
А если попробовать через компонент типа Table? Может из этого что-то выйдет?
P. S. Лично я б писал через Table, только как, пока ещё не знаю .

Автор: X-Vlad 19.4.2003, 08:19
спасибо.

Автор: Vit 19.4.2003, 16:31
1) Переделать архитектуру базы данных - например в отдельном поле хранить хэш мемо и сравнивать хэши, а не мемо - будет работать очень быстро, особенно на больших базах

2) Гораздо хуже - в программе тупо в цикле проверять на совпадение.

Автор: X-Vlad 20.4.2003, 12:08
Цитата
1) Переделать архитектуру базы данных - например в отдельном поле хранить хэш мемо и сравнивать хэши, а не мемо - будет работать очень быстро, особенно на больших базах

а можна пример?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)