![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создаем клиент для чтения и редактирования данных
Для статьи я буду создавать новое приложение, а Вы, если хотите, можете изменять только что созданного клиента. Итак, чтобы создаем новый проект и бросаем на главную форму следующие компоненты:
Внешний вид главной формы приложения у меня получился следующий:
Как видите, состав компонентов стал несколько другим. TDSProviderConnection необходим нам для того, чтобы обеспечить ссылку на TDataSetProvider на стороне сервера. Но, как Вы можете Видеть выше — никакого TDataSetProvider у нашего сервера нет. Поэтому на минуту вернемся к серверу, добавим в модуль ServerMethodsUnit1 компонент TDataSetProvider у которого в свойстве DataSet укажем SQLDataSet. Вид модуля у сервера теперь стал таким:
Теперь пересобирите ISAPI-модуль, выключите IIS, забросьте куда необходимо IIS-модуль и снова включите IIS. Если сервер не будет работать, то мы просто не сможем получить ссылку на серверный DataSetProvider в клиенте. Возвращаемся к нашему клиенту. Будем считать, что TSQLConnection у Вас уже настроен (тритий раз повторяться не буду). Переходим сразу к TDSProviderConnection и устанавливаем у него следующие свойства:
Здесь будьте предельно внимательны — не перепутайте класс TServerMethods1Client, который находится в клиенте с классом TServerMethods1, который находится в модуле сервера. TDSProviderConnection должен содержать имя класса именно сервера. По хорошему, было бы не плохо, если бы свойство ServerClassName содержало список, как у TSQLServerMethod, но имеем пока то, что имеем. Теперь устанавливаем свойства у TClientDataSet:
Свойство ProviderName — это список, который формируется после запроса к серверу и в это список ничего руками вписывать не следует. Если у вас не получается зделать вот так:
то одно из двух:
Теперь устанавливаем у DataSourse свойство DataSet как ClientDataSet1 и настраиваем свойства у DBGrid и DBNavigator. У CheckBox1 снова пишем обработчик OnClick:
Этого будет достаточно, чтобы запустить все компоненты по цепочке. И остается решить вопрос с обновлением БД. Я не стал выдумывать ничего лишнего и сделал отправку изменений на сервер в ручном режиме. т.е. добавил на форму кнопку и определил обработчик OnClick следующим образом:
Вот теперь можно запустить наш клиент и попробовать добавить/отредактировать/удалить записи. Будьте уверены — данные отправятся на сервер и сохраняться в базе данных. Если вместо русских символов в таблице появляются??????????? то установите на сервере свойство TConnection.Driver.ServerCharSet=»utf8″ Как видите сегодня мы с Вами решили поставленную задачу, а также определились с отличиями в составе компонентов у клиента, который работает только на чтения и у клиента для полноценной работы с данными. Исходники всех трех проектов я выложу, но пока открытым остается один вопрос, который, полагаю, возникал у тех, кого заинтересовала тема ISAPI — как проводить отладку ISAPI-модуля? Вопрос на самом деле не большой, поэтому сейчас его быстренько и рассмотрим.
|