Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

procedureTForm1.ShowFields;

var

i : Word;

begin

Memo1.Lines.Clear;Table1.FieldDefs.Update; { должно быть вызвано, если Table1 не активна }

fori:= 0 toTable1.FieldDefs.Count - 1 do WithTable1.FieldDefs.Items[i] doMemo1.Lines.Add(Name + ' - ' + IntToStr(Size));

Memo1.Lines.Add(Name + ' – ' + IntToStr(Size));

end;

Если вам просто нужны имена полей (FieldNames), то используйте метод TTable GetFieldNames:

GetIndexNames для получения имен индексов:

varFldNames, IdxNames : TStringList

begin

FldNames := TStringList.Create;

IdxNames := TStringList.Create;

IfTable1.State = dsInactive thenTable1.Open;

Table1.GetFieldNames(FldNames);

Table1.GetIndexNames(IdxNames);

{…… используем полученную информацию ……}

FldNames.Free; {освобождаем stringlist}

IdxNames.Free;

end;

Для получения информации об определенном поле вы должны использовать FieldDef.

Обмен данными между TMemoField и TMemo

Delphi 1

ProcedureTMemoToTMemoField;

begin

TMemoField.Assign(TMemo.Lines);

end;

ProcedureTMemoFieldToTMemo;

VARaBlobStream : TBlobStream;

begin

aBlobStream := TBlobStream.Create(TMemoField, bmRead);

TMemo.Lines.LoadFromStream(aBlobStream);

aBlobStream.Free;

end;

Если в транзакции изменена какая-то таблица, то для другого пользователя блокируется вся таблица, до окончания транзакции. Как лечить?

Nomadicотвечает:

По умолчанию, оператор UPDATE в MS SQL Server пытается поставить эксклюзивную табличную блокировку. Вы можете обойти это, используя ключевое слово FROM в сочетании с опцией PAGLOCK для использования MS SQL Server страничных блокировок вместо эксклюзивной табличной блокировки:

UPDATE orders SET customer_id=NULL FROM orders(PAGLOCK) WHERE customer_id=32;

Блокиpовка на всю таблицу пpи UPDATE ставится только в том случае, если по предикату нет индекса. Так, можно просто проиндексировать таблицу orders по полю customer_id, и не забывать делать UPDATE STATISTIC, хотя будет работать и с PAGLOCK. Просто не факт, что UPDATE всегда делает табличную блокировку.

Форма Мастер-Деталь

Delphi 1

…это нормально в двух случаях:

1. Эксперт баз данных по умолчанию создает запрос, где RequestLive установлен в False; если вы хотите что-либо изменить, установите RequestLive в True.

2. При отношениях «один к многим», из-за правил сохранения целостности, вам дозволяется делать изменения только на форме «многих», а не на форме «один».

BTW: правильно, что вы об этом задумались. Предположим, что вы имеете отношение «один к многим», где «один» — ваши клиенты, а «многие» — их счета-фактуры: естественно, счетов, относящихся к клиенту, может быть больше, чем один. Если ваша система позволяет редактировать информацию о клиентах, например, удалять записи, то вскоре вы можете обнаружить, что некоторые счета не будут иметь отношения к кому бы то ни было.

Подскажите как правильно показать на экpане и сохранить в базе картинку формата JPEG?

Nomadicотвечает:

Я делал так (это кусок компонента):

ifPicture.Graphic isTJPegImage then

begin

bs:=TBlobStream.Create(TBlobField(Field),bmWrite);

Picture.Graphic.SaveToStream(bs);

bs.Free;

end

else ifPicture.Graphic isTBitmap then

begin

Jpg:=TJPegImage.Create;

Jpg.CompressionQuality:=…;

Jpg.PixelFormat:= ;

Jpg.Assign(Picture.Graphic);

Jpg.JPEGNeeded;

bs:=TBlobStream.Create(TBlobField(Field),bmWrite);

Jpg.SaveToStream(bs);

bs.Free;

Jpg.Free;

end elseField.Clear;

Как исключить показ поля P_RECNO?

Delphi 1

Вы можете сделать:

1. отредактируйте TTable для исключения P_RECNO

или

2. установите

TableX.FieldbyName('P_RECNO').Visible := False;

Это можно сделать также и с помощью редактора полей (Fields Editor), который связан не с DBGrid, а напрямую с компонентом Table. Для вызова редактора щелкните правой кнопкой мыши на компоненте Table и выберите самый верхний пункт контекстного меню. Добавьте все поля в список полей и выделите то поле, которое вы не хотите показывать в DBgrid. Найдите в Инспекторе Объектов свойство Visible, и установите его в False.

//

Если у вас имеется компонент TTable, дважды щелкните на иконке компонента (расположенной на форме), и вы получите в диалоге список полей, имеющих отношение к соответствующей таблице щелкните на одном из полей и проверьте в Инспекторе Объектов свойство Visible, оно должно быть установлено в False.

//

Информация из одной таблицы и набора данных на двух формах

1. Добавьте на вторую форму (form2) компонент TTable

2. В режиме разработки присвойте этой таблице такие же значения, как и у таблицы, расположенной на form1

3. В секции IMPLEMENTATION у form2 создайте следующий фрагмент кода:

unitform2;

interface

{…}

implementation

uses form1;

{…}

4. Подключите процедуру к OnCreate-событию в form2 (через Инспектор Объектов)

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

table1 := form1.table1;

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

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

- На Form1

разместите Table1

разместите DataSource1

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

разместите DataGrid

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

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

- На Form2

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

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

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

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

WithForm1 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) и заноси значение в свое поле.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x