Delphi

Delphi dbedit: BROKEN LINK no referer

DBEdit в Delphi

Сентябрь 17th, 2013 admin

DBEdit – это окно редактирования. Относится к модулю Dbctrls.

DBEdit связанный с данными аналог обычного окна редактирования Edit. Он позволяет отображать и редактировать данные полей различных типов: строка, число, булева величина.

Преобразование значения поля в строку текста, отображаемую в DBEdit, производится автоматически. Если задать в компоненте ReadOnly = true, то он, как и DBText, будет служить элементом отображения, но несколько более изящным, чем DBText.

Свойства компонента, обеспечивающие связь с данными:

  • DataSource – источник данных типа TDataSource
  • DataField – имя поля, с которым связан компонент
  • Field – объект этого поля (только для чтения)

Большинство остальных свойств (AutoSelect, AutoSize и др) аналогичны свойствам компонента Edit. Но в DBEdit главное свойство окна – Text недоступно во время проектирования. Текст в окне определяется соответствующим полем текущей записи и может изменяться пользователем или программно во время выполнения. Отредактированное значение в поле помещается в соответствующее поле набора данных.

. свойство datafield в dbedit делфи 7 dbedit delphi описание dbeedit в Делфи delphi dbedit преобразование текста перед записью в бд dbedit . dbedit delphi описание dbedit в делфи dbedit свойство datafield в dbedit делфи 7 dbedit format Опубликовано в рубрике Delphi Комментирование и размещение ссылок запрещено.

Добавление текста в DBEdit

 
Artemij   (2003-12-04 10:57) [0]

При появлении формы в DBEdit вписывается текст (напр. DBEdit1.Text := DateToStr(Date)). Если щелкнуть на этом эдите, то содержимое пропадает и надо писать все с начала. Как добиться того, чтобы програмно вписанный текст в DBEdit можно было изменить или дополнить?


 
Вованчик   (2003-12-04 11:02) [1]

а просто Edit использовать не пробовал

DBEdit — для баз предназначен


 
Artemij   (2003-12-04 11:25)
[2]


> Вованчик ©

У меня в DBEdit и есть инфо из базы данных.


 
Вованчик   (2003-12-04 11:26) [3]

а базу в режим редактирования или вставки переводишь?


 
Artemij   (2003-12-04 11:43) [4]

Перевожу в режим Append.


 
Ильш   (2003-12-04 11:45) [5]

Так в базу сразу впиши эту самую дату, а не в Edit.


 
Artemij   (2003-12-04 11:59) [6]


> Ильш ©


Сенкс. Дополнить могу, но только теперь не работает функция Cancel, и в БД появляется ненужная мне запись. Может использовать не Append и Cancel?


 
Вованчик   (2003-12-04 13:15) [7]

Попробуй Insert вместо Append


Иллюстрированный самоучитель по Delphi 7 для начинающих › Базы данных › Просмотр базы данных.

Режим формы. [страница — 322] | Самоучители по программированию

Просмотр базы данных. Режим формы.

Пользователь может просматривать базу данных в режиме формы или в режиме таблицы. В режиме формы можно видеть только одну запись, а в режиме таблицы – несколько записей одновременно. Довольно часто эти два режима комбинируют. Краткая информация (содержимое некоторых ключевых полей) выводится в табличной форме, а при необходимости видеть содержимое всех полей записи выполняется переключение в режим формы.

Компоненты, обеспечивающие просмотр и редактирование содержимого полей базы данных, находятся на вкладке Data Controls (рис. 17.8).


Рис. 17.8. Компоненты просмотра и редактирования полей базы данных

Режим формы

Для того чтобы обеспечить просмотр базы данных в режиме формы, в форму приложения нужно добавить компоненты, обеспечивающие просмотр и, если нужно, редактирование содержимого полей записи, причем по одному компоненту для каждого поля.

Компонент DBText позволяет только просматривать содержимое поля, а компоненты DBEdit и DBMеmо – просматривать и редактировать. В табл. 17.9 перечислены некоторые свойства этих компонентов. Свойства перечислены в том порядке, в котором следует устанавливать их значения после добавления в форму приложения.

Таблица 17.9. Свойства компонентов DBText, DBEdit и DBMеmо.

Свойство Определяет
Name Имя компонента. Используется для доступа к свойствам компонента
DataSource Компонент-источник данных
DataField Поле базы данных, для отображения или редактирования которого используется компонент

В качестве примера использования компонентов DBEdit и DBMеmо рассмотрим программу, которая обеспечивает работу с базой данных «Архитектурные памятники Санкт-Петербурга». Вид формы приложения приведен на рис. 17.9.


Рис. 17.9. Форма приложения Архитектурные памятники Санкт-Петербурга

Обзор инструмента CodeSite.

После выхода RAD Studio XE в составе меню “Tools” появился ещё один инструмент для разработчика – CodeSite. Что такое CodeSite? Это система журналирования (logging system), которая позволяет вести удобный и, главное, максимально информативный лог работы приложения. Думаю, что когда-либо перед любым разработчиком встает вопрос о том, каким образом отслеживать работу своего продукта, как на этапе его разработки, так и после релиза, когда программой во всю используют другие люди. Соответственно, до RAD Studio XE, многие могли начать изобретать свой собственный “велосипед” – “движок для логирования” собственного производства. Может быть такой подход и оправдан в какой-то мере, но всё-таки имеет много недостатоков, например:

  1. Лишняя трата времени на разработку своей системы логирования. Вместо того, чтобы заниматься непосредственно работой по улучшению функциональности программы, исправлению ошибок и т.д. приходится “зависать” над разработкой модуля/компонента/библиотеки, которая будет использоваться исключительно в служебных целях, т.е. для рядового пользователя практически бесполезной.   Можно, конечно, максимально сократить время разработки и просто “втупую” писать в лог-файл всё подряд, но тут мы получим второй недостаток.
  2. Малая информативность. Здесь речь скорее не об объеме информации, а о её содержании и оформлении. Можно сделать в своей системе какой-нибудь шаблон записи типа “
    Дата – Действие – Результат
    ” и по такому шаблону писать весь лог. Вроде бы быстро и просто, но потом как такой файл анализировать? Особенно учитывая то, что чаще всего смотреть лог в таких случаях приходится из txt-файлика. Когда объем небольшой, то вроде бы и не сложно, а если лог за целый день работы? Или за неделю?

В принципе, эти два недостатка и сподвигли меня уделить пару часиков своего времени на то, чтобы изучить работу инструмента CodeSite. Так как сейчас приходится успевать работать над двумя проектами, то тратить время на “велосипеды” совсем не хочется, тем более, что под рукой уже есть замечательное и эффективное решение от профессионалов.

Введение

Итак, что же такого интересного может предложить нам CodeSite?

CodeSite

дает разработчику более полное понимание того, как выполняется его код. Благодаря имеющимся в составе продукта Viewer’ам, можно получить лог, который позволит с максимальной скоростью и удобством разобраться в том, что происходит в программе.  Можно “лёгким движением руки” (с) записать в лог целый объект и получать сведения по изменяющимся свойствам, быстро логировать работу сразу нескольких потоков в приложении, разделять сообщения по группам, свойствам, назначать сообщениям другие свойства (цвета шрифтов и фона), которые будут способствовать более комфортному и эффективному изучению лога. Но об этом чуть позже, а пока пару слов про viewer’ы в CodeSite.

Для просмотра логов мы можем использовать:

  • Live Viewer, который обновляется сразу же, после поступления новых сообщений в диспетчер сообщений. Этот вьювер очень удобно использовать на этапе разработки программы.
  • File Viewer – просмотрщик лог-файлов. Можно, например, долгое время записывать весь ход работы программы в отдельный файл, а потом, используя File Viewer просмотреть этот файл, отфильтровав сообщения по нескольким заданным критериям.

Кроме того, в состав CodeSite входит небольшая консольная утилита под названием CSFileExporter.exe, с помощью которой можно экспортировать лог-файл в другие форматы – XML, CSV, TSV.

От слов к делу. Посмотрим как работает CodeSite и, что мы можем сделать, используя бесплатную версию инструмента – CodeSite Express.

Первый лог с CodeSite. Использование класса TCodeSiteLogger.

Класс TCodeSiteLogger используется для отправки сообщений из программы в диспетчер CodeSite для дальнейшего их просмотра в одном из viewer’ов. Собственно, для нас этот класс будет основным. Класс содержится в модуле CodeSiteLogging, который необходимо подключить в uses того модуля работу которого мы будем логировать. Для наиболее общего использования возможностей этого класса от нас не требуется создавать собственные объекты, т.к. при инициализации модуля уже создается объект CodeSite:

TCodeSiteLogger, который можно сразу же использовать. Однако никто нам и не запрещает сделать хоть 10 собственных объектов и работать с ними.

Для начала рассмотрим те методы класса, без которых лог – не лог. И первый метод:

procedure Send(const Msg: string ); overload;

Метод Send отправляет новое сообщение в логгер. Этот метод имеет несколько перегруженных вариантов, если быть точнее, то в CodeSite 5 (для Delphi XE2) содержится 39 вариантов метода Send, которые позволяют отправлять различные данные в логгер в их нативном формате. Например, следующий перегруженный метод:

CodeSite.Send('Main Form', Self);

Позволяет отправить сообщение, содержащее целиком весь объект формы. Другие варианты Send позволяют отправлять строки, числа, списки строк, картинки, иконки и т.д. В общем преобразования типов данных внутри кода программы нам вряд ли понадобится.

Для примера работы метода Send создадим новый проект Delphi, подключим в uses модуль CodeSiteLogging, бросим на форму кнопку и напишем на OnClick такой код:

  CodeSite.Send('Hello, CodeSite');//отправили строку
  CodeSite.Send('Form Height', Height);//отправили сообщение с числом
  CodeSite.Send(csmError, 'Сообщение типа "Ошибка"');

Теперь запустите программу и нажмите кнопку. Сразу же после нажатия кнопки запуститься Live Viewer, содержащий наши сообщения:

Как видите, то сообщение, для которого мы назначили иконку ошибки, выглядит иначе, чем два предыдущих сообщения. И надо сказать, что использование иконок – это конечно, мелочь, но эта мелочь очень неплохо повышает читабельность лога. Ведь согласитесь, что при просмотре лога первое, куда перемещается взгляд – на запись, которая выглядит “не так”? И тут главное не переборщить, чтоб лог не выглядел как новогодняя елка, иначе вся наглядность пойдет прахом.

Двигаемся далее по методам. Следующий метод:

  procedure Assert( Expression: Boolean; const Msg: string );

Этот метод проверяет выражение, записанное в Expression и, если оно равно False отправляет в логгер сообщение типа “Ошибка”. На примере нашего приложения работу этого метода можно продемонстрировать так:

CodeSite.Assert(Height<Width, 'Высота окна больше его ширины')

Если высота окна будет больше ширины – в лог выведется строка, сообщающая нам об этом, иначе – сообщение об ошибке будет пропущено. Кстати, раз уж речь пошла про сообщения об ошибках и исключениях, то у TCodeSiteLogger для таких целей есть сразу два метода:

procedure SendError(const Msg: string); overload;
procedure SendException(E: Exception); overload;

Эти методы по части количества перегруженных версий не такие богатые как Send (всего по две версии), но зато сразу отправляют сообщение с необходимыми иконками. Перегруженные версии позволяют использовать в сообщениях шаблоны строк (аналогично CreateFmt у Exception). Сообщения, отправленные с помощью методов SendError и SendExceprion в Live Viewer выглядят следующим образом:

Следующие два метода позволяют нам записать в лог вход/выход из метода:

procedure EnterMethod( const MethodName: string ); overload; virtual;
procedure ExitMethod( const MethodName: string ); overload; virtual;

Использовать их можно так:

procedure TForm7.Button1Click(Sender: TObject);
begin
CodeSite.EnterMethod('Button1Click');
//Что-то тут делаем
CodeSite.ExitMethod('Button1Click');
end;

В этом случае мы получим вот такой лог работы программы:

Либо воспользоваться перегруженными версиями этих методов и передать в сообщении какой-нибудь объект:

procedure TForm7. Button1Click(Sender: TObject);
begin
CodeSite.EnterMethod(self,'Button1Click');
//Что-то тут делаем
CodeSite.ExitMethod(self,'Button1Click');
end;

В этом случае перед названием метода, которое мы передали во втором параметре также выведется и название объекта, т.е. лог будет выглядеть так:

Использование двух этих методов могут преследовать сразу две полезные задачи. Во-первых, использование Enter/ExitMethod повышает наглядность лога – в большом подробном логе сразу будет видно в каком методе что происходит. Во-вторых, используя функции viewer’а мы можем сворачивать все сообщения, находящиеся между блоками и, тем самым, быстро находить необходимую нам информацию в логе.

Вот, пожалуй, те методы, которые будут очень полезны и востребованы при логгировании работы программы. Это не все методы, которые имеются у класса TCodeSiteLogger. Есть так же и менее важные методы, например,

procedure AddCheckPoint;
procedure AddSeparator;

которые ещё больше повышают наглядность лога, но, не передают никакой информации о работе. Поэтому, если хотите, можете немного поэкспериментировать с различными методами класса и посмотреть, что в итоге получите в логе. А мы перейдем к следующей части статьи и рассмотрим свойства класса TCodeSiteLogger.

Свойства TCodeSiteLogger
Свойств у TCodeSiteLogger не много и все они, за исключением двух используются для повышения наглядности удобства чтения лога:

property Category: string;
property CategoryBackColor: Color;
property CategoryColor: TColor
property CategoryFontColor: TColor
property DateTimeFormat: string
property Destination: TCodeSiteDestination
property Enabled: Boolean;

Что касается первых пяти свойств, то тут лучше показать как они работают, чем рассказывать. Например, с помощью свойств Category, CategoryColor можно создать вот такой лог:

Обратите внимание – при использовании свойства Category мы получили не только то, что каждое сообщение в логе содержит строку в столбце Category, но также и разделение всего лога по вкладкам, где каждая вкладка содержит сообщения отдельной категории.

Свойство Destination используется для того, чтобы указать объекту где и как будут обрабатываться сообщения. Ниже будет показан пример того, как, используя свойство Destination можно записывать лог в отдельный файл. Например, мы можем создать несколько объектов для ведения лога и каждому из них назначить свою категорию, одному задать через Destination запись лога в файл, второму в Live Viewer и т.д.

Запись лога в файл

Когда мы разрабатываем программу, то, как уже было сказано выше, наиболее удобно и комфортно использовать возможности Live Viewer’а. Однако, когда программа уже разошлась по пользователям, то для ведения лога работы программы этот просмотрщик логов уже не подойдет – надо будет писать лог в файл. Для чтения лога из файла предназначен второй viewer – File Viewer. Как заставить его работать?

Во-первых, нам надо “сказать” логгеру (TCodeSiteLogger), что данные будут записываться в файл. Делается это следующим образом:

1. Создаем, например, на OnCreate формы объект типа TCodeSiteDestination и для него следующие свойства:

procedure TForm7.FormCreate(Sender: TObject);
var Dest: TCodeSiteDestination;
begin
  Dest:=TCodeSiteDestination.Create;
  Dest.LogFile.FilePath:=ExtractFilePath(Application.ExeName);
  Dest.LogFile.FileName:='Log.csl';
  Dest.LogFile.Active:=true;
end;

Таким образом мы указали, что лог будет содержаться в файле “Log.csl”, который будет расположен в директории с программой. Теперь определим свойство Destination у CodeSite и запустим программу:

CodeSite.Destination:=Dest;

Можете закрыть Live Viewer, т.к. обновляться он не будет, а вместо этого открыть директорию с программой и убедиться, что по мере работы программы файл лога постепенно наполняется данными. В последствии, полученный лог можно будет открыть в File Viewer или добавить содержимое файла в Live Viewer.

При записи в файл Вы также можете указать ограничения на файл – максимальный размер в байтах или максимальное количество записей.
С записью в файл тоже вроде бы разобрались. Теперь более внимательно посмотрим на окно Viewer’а.

Работа с Live/File Viewer

Что касается работы с вьюверами, то тут, дума, для описания всех функций и возможностей даже в “урезанной” поставке CodeSite с RAD Studio XE2 не хватит ни сил не времени. Да и это, в принципе, незачем. Поэтому расскажу лишь про те функции, которые для меня сейчас наиболее полезны.

И первая функция – это сворачивание/разворачивание лога работы в отдельно методе. Как я уже говорил выше, для того, чтобы разграничить в логе места где выполняется како-либо код используются методы EnterMethod и ExitMethod. Для того, чтобы свернуть весь лог, находящийся между записями типа “вход/выход из метода” необходимо нажать Ctrl+Up или в выбрать в логе запись входа в метод и в контекстном меню нажать “Collapse Method“. Повторное нажатие Ctrl+Up развернет лог между метками входа/выхода. На рисунке ниже показан лог в котором часть сообщение “свернута”:

Как вы понимаете, функция сворачивания части лога будет очень полезна при работе с подробными логами работы, т.к. значительно облегчит поиск необходимой информации. Для работы же с самой информацией мне очень понравилась функция сравнения двух объектов одного типа. Работает она следующим образом.

На представленном выше рисунке Вы можете видеть, что в лог записывалась информация по объекту формы (Self). Если мы выберем в логе любую запись с этим объектом то в панели инспектора (справа) отобразятся все значения свойств этого объекта в момент отправки сообщения, т.е. инспектор будет выглядеть так:

Теперь зажимаем Ctrl и выбираем вторую запись с Self. В итоге в инспекторе будут отображены только те значения свойств, которые изменились:

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

Вот пожалуй очень кратко о том, что за инструмент CodeSite и как им пользоваться. В заключение скажу, что после того как разобрался с работой CodeSite пожалел, что не использовал его ранее – инструмент очень даже неплохой, даже учитывая то, что это всего лишь Express-версия без таких “плюшек”, как просмотр коллекция ScratchPad и т.д. По крайней мере, используя его для логирования работы программы для работы с Google Docs (а там и сетевые подключения и потоков куча) я не нашел к чему бы придраться. В общем, если Вам срочно нужна хорошая система логирования – используйте CodeSite.

 

Книжная полка

Описание Подробно рассматривается библиотека FM, позволяющая создавать полнофункциональное программное обеспечение для операционных систем Windows и OS X, а также для смартфонов и планшетных компьютеров, работающих под управлением Android и iOS

Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.

 

0 0 голос

Рейтинг статьи

Компонент DBEdit — доступ к данным

DBEdit — это базовый строительный блок любого типа приложения для ввода данных. Этот компонент ограничен одной строкой текста и одновременно отображает и открывает поле набора данных для изменения. DBEdit предлагает некоторую степень контроля над форматированием вводимых и отображаемых данных с помощью ряда настроек свойств. Подобно предыдущему компоненту, DBEdit — это версия класса TEdit с поддержкой данных. Просмотрите тип данных, который необходимо поддерживать, чтобы определить, подходит ли этот элемент управления для использования или данные могут быть лучше представлены с помощью элемента управления DBMemo.

Ключевые свойства

Свойства, которые будут обсуждаться в контексте элемента управления DBEdit, в основном сосредоточены на форматировании данных для целей ввода или отображения.

AutoSelect

Чтобы помочь пользователю быстро заменить текст, отображаемый в элементе управления DBEdit, свойство AutoSelect может быть настроено на автоматическое выделение всего текста, когда элемент управления получает фокус. Если для свойства установлено значение по умолчанию True, весь текст автоматически выбирается, когда пользователь щелкает поле или вкладки в поле.Затем содержимое поля заменяется, как только элемент управления получает первые нажатия клавиш редактирования. Если для свойства установлено значение False, пользователь должен дважды щелкнуть текст, чтобы выделить его.

AutoSize

Свойство AutoSize для компонента DBEdit немного отличается от свойств с аналогичными именами, которые мы видели ранее. Если для свойства установлено значение True, высота элемента управления может автоматически изменяться в соответствии с изменениями размера текста. Изменения могут быть вызваны такими элементами, как шрифт или стиль границы элемента управления.Если значение свойства равно False, высота фиксирована, а изменения условий игнорируются.

CharrCase

Регистр текста в компоненте DBEdit можно контролировать с помощью свойства CharCase. Значение по умолчанию ecNormal принимает и отображает вводимый текст в том виде, в каком его предоставляет пользователь. Если для свойства задано значение ecUpperCase или ecLowerCase, вводимый текст автоматически преобразуется в соответствующий регистр и постоянно изменяется. Текст

Глава 6 — Компоненты Delphi, связанные с данными u хранится в поле набора данных, поскольку он отформатирован с помощью CharCase и не может быть отменен путем выбора противоположного или нормального регистра.

Макс.длина

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

PasswordChar

Свойство PasswordChar уникально для компонента DBEdit. Он заменяет фактические введенные символы символом, указанным в этом свойстве, например звездочкой. Когда пользователь вводит текст в поле, строка скрывается за цепочкой звездочек, что делает ее идеальной для использования при сборе информации о пароле или других данных, которые необходимо защитить.

Читать здесь: Компонент DBCheck Box

Была ли эта статья полезной?

DB Компоненты со скрепленной этикеткой

rDBComponents — это набор из улучшенных или новых компонентов TDataControl , содержащий:

  • DBEdit, DBMemo, DBMemoEx, DBCheckBox
  • DBListBox, DBComboBox, DBLookupListBox, DBLookupComboBox
  • DBCheckListBox, DBCheckListBoxEx
  • DBEditDate, DBDateTimePicker
  • DBImage, DBBlob
  • DBLabel, DBButton
  • DBRecSelection (выпадающий список для выбора активной записи)
  • DBColorLinkedComp (невизуальный компонент устанавливает цвет компонентов БД в одной форме в соответствии с цветом связанной DBGrid и выбранной записи)

Все они предоставляют следующие новых функциональных возможностей :

  • показать BoundLabel в выбранной позиции и звездочку для обязательных полей, Заголовок считывается из DisplayLabel связанного поля или может быть установлен пользователем вручную
  • изменить цвет фона, если набор данных не находится в режиме редактирования (необязательно)
  • исправлено много ошибок стандартных компонентов
  • DBComboBox и DBLookupComboBox поддерживает многоколоночный раскрывающийся список с изображениями и настраиваемым рисунком
  • DBLookupComboBox поддерживает быстрого поиска текста во всех столбцах и может отображать несколько столбцов, значение выбранной записи в окне редактирования
  • rDBMemoEx поддерживает подсветку синтаксиса и возможность редактировать текст в независимом окне
  • rDBEditDate позволяет очень быстро и удобно вводить дату (ярлыки для текущей даты, переход к следующему дню или месяцу, возможность ввести только день или день + месяц с любым разделителем), он по-прежнему поддерживает выпадающий календарь как DateTimePicker
  • rDBDateTimePicker поддерживает нулевое значение даты (показать дополнительный флажок)
  • rDBImage представляет масштабирование с полосами прокрутки, дополнительные кнопки для удобной настройки масштабирования, возможность показывать / редактировать картинку в отдельном окне, вырезать, копировать, вставить, сохранить как файл, загрузить из файла, поддержка JPEG + PNG и т. д.
  • rDBBlob поддерживает загрузку и сохранение любого файла из / в поля blob
  • rDBButton поддерживает стандартные действия с базой данных и изменяет состояние в соответствии с состоянием набора данных

Пример DBComponents:

См. Другие примеры в видео :
Использование DBComponents

Открыть страницу документации.

Вернуться

Элемент управления DBEdit не редактируется / находится на набережной.public.delphi.language.delphi.win32 / NNTP Conversation

# Строки
Привет Смит написал 12 октября 2009 г .:
у меня есть dbgrid и dbedit control в моей форме …
оба подключены к datasource1 и table1 ….
моя dbgrid содержит данные из штатного расписания (включая имя персонала)
мой элемент управления dbedit содержит значение первой строки (имя персонала)
почему мой dbedit не редактируется, когда я запускаю свое приложение ??
15
Билл Тодд ответил 12 октября 2009 г .:
Создает ли оператор SELECT редактируемый набор результатов?
Какую базу данных вы используете?
Что такое инструкция SELECT?
Установлено ли для свойства ReadOnly компонента набора данных значение
правда?
11
Уэйн Ниддери ответил 12 октября 2009 г .:
«helloise smit» написала в сообщении news: ✉forums.codegear.com …
(снип)

Какой набор данных используется? Если это компонент запроса (например, TQuery
или TIBQuery или TADOQuery), затем проверьте, что свойство RequestLive истинно.
Кроме того, возможно, вы установили AutoEdit на false в TDatasource (это
правда по умолчанию), в этом случае необходимо разместить
35
Привет Смит ответил 14 октября 2009 г .:
(снип)

спасибо, у меня есть TIBQuery, и мое автоматическое редактирование установлено на true…
свойство набора данных запроса связано с IBTable
так что не уверен, что еще я должен установить ….

45
Уэйн Ниддери ответил 14 октября 2009 г .:
«helloise smit» написала в сообщении news: ✉forums.codegear.com …
(снип)

Я бы предложил использовать компонент TIBDataset.Это позволит вам сгенерировать /
настроить необходимые SQL-операторы вставки / обновления / удаления на основе
Выберите предоставленную вами выписку.
16
Привет Смит ответил 14 октября 2009 г .:
(снип)

Хорошо, спасибо, тогда я отбрасываю запрос и таблицу? Я где-то нашел, что запрос возвращает набор результатов ТОЛЬКО ДЛЯ ЧТЕНИЯ…



43
Билл Тодд ответил 14 октября 2009 г .:
helloise smit написала:
(снип)

TIBQuery доступен только для чтения. Вместо этого используйте TIBDataSet. TIBQuery имеет
нет свойства DataSet, поэтому вы утверждаете, что «запрос
свойство набора данных связано с . .. «не имеет смысла.Что такое
TIBTable используется для? Ваши средства управления с учетом данных могут
19
Привет Смит ответил 15 октября 2009 г .:
(снип)

Итак, с моей DBGrid единственный другой компонент, который мне нужен, — это TIBDataset? и конечно IBDatabase и IBTransaction ???



27
Лорен Сендре ответил 15 октября 2009 г .:
helloise smit написала:
(snip)
Можете ли вы это сказать, но вам также понадобится TDataSource.
Элементы управления с поддержкой данных (например, TDBGrid) никогда не подключаются напрямую к какому-либо
набор данных. Элементы управления с поддержкой данных связаны с источником данных, который указывает на
набор данных. На самом деле это работает довольно хорошо — потому что, если вы хотите
24
Привет Смит ответил 15 октября 2009 г .:
(снип)

Теперь у меня есть только DBGrid, TIBDataset и, конечно, IBDatabase и IBTransaction, он показывает все мои данные, но все еще не может редактировать компонент DBedit
К сожалению, я мало что знаю, чтобы понять, в чем проблема…


34
Лорен Сендре ответил 15 октября 2009 г .:
helloise smit написала:
(снип)

Чтобы ваш TIBDataset можно было редактировать, вам необходимо заполнить
Операторы Insert, Modify, Delete и Refresh, которые, к счастью,
компонент может сделать за вас. Просто щелкните его правой кнопкой мыши и выберите Dataset.
Редактор. Позвольте ему создать для вас утверждения на основе вашего выбора
37
Привет Смит ответил 15 октября 2009 г .:
(снип)

спасибо, я бы никогда этого не понял, но после НЕДЕЛИ поисков в Google понял это …
У меня есть оператор вставки с помощью редактора, когда я нажимаю + на навигаторе, он вставляет идентификатор в сетку, но не позволяет вам вставить имя и ВТОРОЙ, если я просто хочу принять идентификатор, я получаю всплывающее окно что говорит: попытка обновления во время сеанса только для чтения ????????
(снип)

это будет еще один курорт…хочу уточнить, используя навигатор
(снип)

58
Билл Тодд ответил 15 октября 2009 г .:
helloise smit написала:
(снип)

Это верно.

Билл Тодд (TeamB)
8

Обзор архитектуры Delphi

Обзор архитектуры Delphi

Десцендент TDataSet Advantage

Концепции, терминология и примеры, описанные в этом файле справки, были разработаны на основе предположения, что читатель имеет базовые представления о теории баз данных.Это включает понимание таких понятий, как базы данных, таблицы и индексы. Также предполагается, что читатель ранее разработал приложение базы данных. Для получения информации по всем этим темам, связанным с Delphi, см. Справочную документацию Delphi Разработка приложений баз данных , а также примеры приложений баз данных, включенные в ваш комплект разработки Delphi.

Приложения базы данных

При разработке приложений баз данных с использованием Delphi (также применимого к Kylix и C ++ Builder) вы, скорее всего, использовали компоненты доступа к данным Delphi и компоненты Delphi, поддерживающие данные.Компоненты доступа к данным отображаются на странице доступа к данным палитры компонентов в Delphi. Некоторые примеры компонентов: TTable, TQuery, TDataSource и TDatabase. Компоненты с поддержкой данных отображаются на странице компонентов элементов управления данными. Примеры этих компонентов включают DBGrid, DBEdit и DBMemo. Компоненты на странице доступа к данным инкапсулируют все операции по извлечению данных и манипулированию ими. Компоненты на странице Data Controls предоставляют функциональные возможности для визуального отображения и редактирования данных, таких как поля редактирования и сетки.

Компоненты доступа к данным Delphi

Наиболее часто используемые компоненты доступа к данным — TTable, TQuery и TDataSet. Компоненты TTable и TQuery Delphi являются поставщиками данных. Компонент TTable является потомком компонента TDataSet и предоставляет все функции, связанные с таблицей базы данных. Таблица базы данных существует на жестком диске. Доступ к программе и манипуляции с таблицей выполняются компонентом TTable. Компонент TQuery также является потомком компонента TDataSet.Он инкапсулирует набор результатов на основе запроса SQL. Все операции чтения и записи в базу данных обрабатываются компонентом TQuery.

В Windows как компонент TTable, так и компонент TQuery традиционно используют Borland Database Engine (BDE). BDE — это собственный сервер для многих продуктов Borland, таких как dBASE, Delphi и C ++ Builder. Это механизм базы данных, который обрабатывает все процедуры запросов к базе данных низкого уровня. Компоненты TTable и TQuery традиционно используют BDE для получения доступа к реальным данным или серверу данных. При использовании собственных компонентов Delphi данные могут находиться в файле, таком как файл DBF в стиле dBASE или файл Paradox DB, или могут предоставляться сторонним серверным продуктом баз данных, например Oracle или InterBase.

Компоненты управления данными Delphi

Набор компонентов Delphi, обеспечивающих визуальное представление данных, — это компоненты, поддерживающие данные. Эти компоненты появляются на странице Data Controls палитры компонентов и извлекают данные, отправляя запросы к компоненту TDataSet.Некоторые из этих часто используемых компонентов — это TDBGrid, TDBMemo и TDBImage, TDBEdit. Например, компонент TDBGrid отображает данные из TDataSet в двухмерной сетке. Это позволяет пользователю визуально перемещаться и редактировать данные в сетке.

При использовании элементов управления с поддержкой данных ваш компонент TDataSet должен быть связан с компонентом TDataSource. Компонент TDataSource ссылается на TDataSet и предоставляет интерфейс для TDataSet, который компоненты, поддерживающие данные, используют для извлечения своих данных.Компоненты с поддержкой данных ограничиваются использованием только функциональных возможностей базы данных, предоставляемых TDataSet через этот интерфейс. Многие методы TTable и TQuery, такие как TTable.ApplyRange и TQuery.ExecSQL, недоступны через этот интерфейс и, следовательно, никогда не доступны для каких-либо компонентов Delphi, поддерживающих данные.

Подводя итог, компоненты с поддержкой данных, такие как TDBGrid и TDBEdit, связаны с TDataSource. Компонент TDataSource предоставляет интерфейс для конкретного компонента TDataSet.Компонент TDataSet — это абстрактный компонент, который предоставляет функции, используемые для доступа к данным. Компоненты TTable или TQuery происходят от абстрактного компонента TDataSet. Эти компоненты конкретны. Они предоставляют все функциональные возможности, которые требуются абстрактным компонентам-предкам.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *