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

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

Заполнение Мемо-поля [D7]


Serg1981 ©   (2006-02-23 18:09:00) 

Здравствуйте!
Почему ни один из ниже приведенных фрагментов кода:
    Query.Edit;
    Query.FieldByName('TXT').Assign(Memo.Lines);
    Query.Post;

    Query.Edit;
    Query.FieldByName('TXT').AsString := Memo.Text;
    Query.Post;

не добавляет ничего в поле ТХТ ? Поле ТХТ имеет тип МЕМО.
Спасибо.


sniknik   (2006-02-25 14:12:00) [1]

оппа...
а разве не было целью заставить обновлятся именно запрос из [0]? судя по примечанию из [5], самописные запросы были непримемлемы (ну, раз знает, что так можно, но спрашивает всетаки об альтернативном методе...)


Serg1981   (2006-02-25 12:12:00) [2]

Спасибо Desdechado [14], всё получилось:

Query.Active := false;
Query.SQL.Clear;
Query.SQL.Add('UPDATE "FILES" SET TXT=:P1 WHERE FILECODE=:P2');
Query.Prepare;
Query.ParamByName('P2').DataType := ftInteger;
Query.ParamByName('P2').AsInteger := k;
Query.ParamByName('P1').DataType := ftMemo;
Query.ParamByName('P1').Assign(RichEdit);
Query.ExecSQL;


Desdechado   (2006-02-24 21:52:00) [3]

знавал я одного чудака, который делал
SELECT * FROM tabl
для того, чтобы 2 раза сделать Append в этот набор данных, а потом ApplyUpdates

ps это намёк


аматор   (2006-02-24 21:12:00) [4]

Desdechado © [14] ну и зачем кайф ламать :)... Пост краше звучит...
Serg1981 : мож я и прикалываюсь, но книги читать хоть иногда надо...
А при чём тут двиг, если запросы одинаковы и "Insert into" как и "UPDATE"  используют в запросах (около 30 слов тяжко выучить :)).


Desdechado   (2006-02-24 11:15:00) [5]

Если запрос такой
> Query.SQL.Add('select * from Files where FileCode=123');
то он 100 лет не нужен. Ибо достаточно сделать
UPDATE Files SET txt=:P1 WHERE FileCode=:P2


sniknik   (2006-02-23 22:49:00) [6]

" такой" или всеже " примернотакой"? говорите точно, в граммах...
т.к. если он именно такойто, при условии, что выставлено RequestLive, вполне может получится "живым". если же примерно... и задействованы конструкции "непонятные" BDE то... ну не сможет он из "непонимаемых" запросов запрос update на обновление сформировать.

если конечно вообще тут BDE используется... (а оно наверняка используется. т.к. чегото слабо верится в собственную базу... собственный движок/компоненты... наследники от BDE-шных, максимум.)


Serg1981   (2006-02-23 22:00:00) [7]

Запрос примерно такой:

> Query.active := false;
> Query.SQL.clear;
> Query.SQL.Add('select * from Files where FileCode=123');
> Query.active := true;

возвращается всегда только одна запись (поле FileCode уникально). После чего необходимо именить мемо-поле ТХТ, для чего вызываю Edit и .....


аматор   (2006-02-23 20:56:00) [8]

Привет...
:), а зачем нам запросы люди какие-то придумали, будем "поститься"....  TQuery = TTable - чисто для меня новость.
Я в SQL такого, пардон, не встречал...


Desdechado   (2006-02-23 20:38:00) [9]

> А как использовать ApplyUpdates ?
> На основании приведённых данных ApplyUpdates здесь непричём.
Текст запроса отсутствует, поэтому можно предположить, что результат нередактируем напрямую, соответственно нужно иметь TUpdateSQL и ApplyUpdates вызывать.


sniknik   (2006-02-23 20:24:00) [10]

> TTable для таблицы в 4 Гигабайта :) Тащусь ! :)
вместо того чтобы тащится лучше бы указал базу/движок... и вообще подробности.

для локального/файлового движка открыть таблицу быстрее чем запрос, и намного, что делает в этом случае табличный доступ предпочтительнее. в отличие от клиент-серверного способа доступа, тут предпочтительнее запросы.


Johnmen   (2006-02-23 20:03:00) [11]

Так что же за БД?

>компонент Query точно скопирован с BDEшного.

Насколько "копия" отличается от оригинала?


Serg1981   (2006-02-23 19:19:00) [12]

Нет, базу писал не я, но компонент Query точно скопирован с BDEшного.


Johnmen   (2006-02-23 19:11:00) [13]

>База собственного формата

Ты уверен?
И драйвера для неё тоже ты писал?


Serg1981   (2006-02-23 19:07:00) [14]

База собственного формата на основе SQL, мемо-поля поддерживают размер до 2 Гбайт.

Примечание: Через INSERT INTO такое поле заполняется без проблем.


Johnmen   (2006-02-23 19:03:00) [15]

Что за база?
На основании приведённых данных ApplyUpdates здесь непричём...


Serg1981   (2006-02-23 18:39:00) [16]

TTable для таблицы в 4 Гигабайта :) Тащусь ! :)
А как использовать ApplyUpdates ?


DSKalugin   (2006-02-23 18:35:00) [17]

:-))) просто тащюсь с Query.Post;
ТТабле для этого есть


Desdechado   (2006-02-23 18:16:00) [18]

> Assign
почитай справку, что оно делает

> Query.Post;
а как насчет ApplyUpdates?


Наверх

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