Если добавление через оператор INSERT ( в TQuery), то прямо там пишешь, как в плюсе («… Values (My_seq.nextval, …»).
Если добавление идет через TQuery c RequestLive=true, то в BeforeInsert сделай запрос через TQuery (select myseq.nextval from dual) и заноси значение в свое поле.
Помещение переменной в Memo-поле
Delphi 1
Если я правильно понял ваш вопрос, вам нужно сделать приблизительно так (для ПОЛУЧЕНИЯ данных):
Memos := TStringList.Create;
Memos.Assign(Table1Memo);
yourvariable_0 := Memos[0];
yourvariable_1 := Memos[1];
……………………
yourvariable_n := Memos[n];
Memos.Free;
или так (для УСТАНОВКИ данных):
Memos := TStringList.Create;
Memos.Add(yourvariable_0);
Memos.Add(yourvariable_1);
……………………
Memos.Add(yourvariable_n);
Table1Memo.Assign(Memos);
Memos.Free;
Индикатор прогресса выполнения запроса
Delphi 1
Невозможно.
Идея заключалась в том, чтобы с помощью объекта TQuery выполнять запросы, SQL сервер их в фоне обрабатывал бы, а мы смотрели бы на это дело на локальной машине с помощью линейки прогресса. Но из приложения никоим образом нельзя узнать, что делает TQuery, так что линейка прогресса, по идее, должна была бы получать текущую позицию непосредственно с SQL сервера. Но, поскольку большинство SQL серверов не публикуют такой информации, эту идею можно торжественно схоронить…
Если вы используете Paradox или DBase, то, я думаю, для этой цели вы можете воспользоваться функцией DBIRegisterCallback:
Использование:
Обратные вызовы (Callbacks) используются в случае, когда клиентскому приложению необходимо получить (возвратить) информацию о ходе выполнения операции. Функция DBIRegisterCallback позволяет клиенту зарегистрировать обратную связь с BDE, после чего BDE может извещать клиента о наступлении событий.
Лично я никогда этим не пользовался, поэтому на смогу поделиться деталями.
Обновление данных БД из модальной формы
Delphi 1
Возможно следующий код позволит вам использовать ту же самую таблицу и источник данных в модальной форме, что и в вашей главной форме. Попробуйте изменить код модальной формы следующим образом:
unit myModalF;
interface
{…}
implementation
{…}
uses
MainForm; {Имя файла родительской формы для вашей модальной формы}
MyModalForm.OnCreate(Sender: TObject);
begin
DBGrid1.DataSource := MyMainForm.DataSource1;
end;
Как записать в BLOB-поле большой текст (>255 байт) из Delphi?
Nomadic отвечает:
Можно так –
var
S: TBlobStream;
B: pointer;
c: integer;
…
Table1.Edit;
S := TBlobStream.Create(Table1BlobField as TBlobField, bmWrite); {кажется, так}
C := S.Write(B, C);
Table1.Post;
S.Destroy;
или так –
var
S: TMemoryStream;
B: pointer;
C: integer;
…
S := TMemoryStream.Create;
…
Table1.Edit;
S.Clear;
S.SetSize(C);
C := S.Write(B,C);
(Table1BlobField as TBlobField).LoadFromStream(S);
S.Clear;
Table1.Post;
…
S.Destroy;
Блокировка таблицы
…когда вы получаете эту, или аналогичную ошибку, вы можете прервать процесс следующим образом (в предположении, что вы пытаетесь запостить запись):
try
Table1.Post;
except
MessageDlg ('Ошибка постинга записи', прочее…
Table1.Cancel;
end;