Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

5. Добавьте к этой процедуре следующую строку:

table1 := form1.table1;

В режиме разработки свяжите все компоненты с table1, расположенным на form1.

Остается только решить проблему синхронизации. Попробуйте следующее:

–  На Form1

 разместите Table1

 разместите DataSource1

установите DataSource1.DataSet := Table1

 разместите DataGrid

установите DataSource := DataSource1

Ну это все просто и стандартно. Поехали дальше:

– На Form2

 разместите DataSource1 (#1 для этой формы)

 разместите

любые другие необходимые вам БД-компоненты;

укажите у них в качестве источника данных DataSource1

 В обработчике события OnCreate для этой формы (например, FormCreate), поместите следующий код:

With Form1 do

begin

 Form2.DataSource1.DataSet := Table1;

end;

 Данный код подключает Table1 на Form1 к DataSource от Form2.

 После таких действий данные будут отображены на Form2 и будут «синхронизированы» с данными, отображаемыми на Form1 (поскольку в действительности используется одна таблица).

Единственное здесь предостережение – если вы используете TDatabase, так как это может быть не то, что вы хотите. Компонент TDatabase не обязателен для получения доступа к базам данных, но, тем не менее, он обеспечивает вас дополнительным контролем в приложениях класса клиент/сервер.

Таким образом, если приложение не работает в среде клиент/сервер, нет необходимости использовать TDatabase. Все, что вам нужно – TDataSource, TTable и компоненты для работы с базами данных. 

Как при вводе информации в БД автоматически вставлять SEQUENCE?

Nomadic отвечает:

Если добавление через оператор 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 может извещать клиента о наступлении событий.

Из руководства пользователя DBE

Лично я никогда этим не пользовался, поэтому на смогу поделиться деталями. 

Обновление данных БД из модальной формы

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

Поделиться:
Популярные книги

Моя на одну ночь

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Моя на одну ночь

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Измена. Отбор для предателя

Лаврова Алиса
1. Отбор для предателя
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Отбор для предателя

Кодекс Крови. Книга II

Борзых М.
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга II

Шаг в бездну

Муравьёв Константин Николаевич
3. Перешагнуть пропасть
Фантастика:
фэнтези
космическая фантастика
7.89
рейтинг книги
Шаг в бездну

Часовая битва

Щерба Наталья Васильевна
6. Часодеи
Детские:
детская фантастика
9.38
рейтинг книги
Часовая битва

Вечная Война. Книга II

Винокуров Юрий
2. Вечная война.
Фантастика:
юмористическая фантастика
космическая фантастика
8.37
рейтинг книги
Вечная Война. Книга II

Хроники странного королевства. Вторжение. (Дилогия)

Панкеева Оксана Петровна
110. В одном томе
Фантастика:
фэнтези
9.38
рейтинг книги
Хроники странного королевства. Вторжение. (Дилогия)

Часовой ключ

Щерба Наталья Васильевна
1. Часодеи
Фантастика:
фэнтези
9.36
рейтинг книги
Часовой ключ

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Очешуеть! Я - жена дракона?!

Амеличева Елена
Фантастика:
юмористическая фантастика
5.43
рейтинг книги
Очешуеть! Я - жена дракона?!

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9