Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Вниз

RDS нужен пример, на Delphi   Найти похожие ветки 

 
sniknik   (2003-03-11 11:48) [0]

Собственно нужна любая инфа, и пример чуток посложнее чем дельфевский, там совсем убогий на открытие 1 таблици, без всякого контроля со стороны клиента :о(, а хотелось бы, чтобы были видны возможности.
(все что я находил было почемуто на VBasic-е)
И пример дельфевский не работает на разных машинах (если его чуть поправить, чтобы записывало), написано что нужно прописывать параметры в msdfmap.ini (открывать на запись). Но как непонятно, информация очень скудная.
боюсь метод "научного тыка" займет очень много времени.

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


 
sniknik   (2003-03-11 23:56) [1]

up. поподымаю немного, ну интересно же (не срочно). может кто где видел? отмажтесь ссылочкой. :-))


 
sniknik   (2003-03-12 13:24) [2]

в суботу пойду в дом Тех.книги, ну если и там нет ;о(((

а до того пусть пост висит. up.


 
sniknik   (2003-03-12 17:56) [3]

up


 
Polevi   (2003-03-12 19:38) [4]

что непонятно то, создай объект на сервере и вызывай его ф-ии, параметры и возвращаемые значения могут быть Recordset упакованные в Variant


 
sniknik   (2003-03-12 20:03) [5]

Polevi © (12.03.03 19:38)
пример/описание есть?
элементарные действия (в виде получения рекорсета) я могу делать (но хочется большего, запись в частности с клиента). И опять не на всех машинах (почему так понять не могу, и даже не знаю от чего зависит и где смотреть, в смысле почему из пяти машин в подсети на 1 сервер поднимается и работае а на 4 нет) .

в общем нужна документация. есть?


 
Polevi   (2003-03-12 20:13) [6]

msdn.microsoft.com


 
sniknik   (2003-03-12 22:52) [7]

;о)) и шо вы там видели на дельфи?

я могу вам подсказать такой инфы и поближе на вашей собственной машине файл ADO210.CHM (при установленом MSOffice 2000/XP) сделать поиск в нем по RDS Object Model Summary (к примеру).

проблема в том что там тоже примеры на бейсике и на си. (в дельфи не идут почемуто :-)))

не давайте я по другому вопрос сформулирую. может непонятно сказал.
я только начинаю с ним разбиратся и не знаю достаточно даже для того чтобы правильно вопрос сформулировать. поэтому и спросил может у кого есть почитать по началам или на языке который мне понятен (Дельфи). После может и не придется спрашивать. Если у вас нет, ну и ладно. Дождусь суботы куплю книгу (если найду по теме), не найду вот тогда придет время гемороится и пытатся переводить с иностранного (Бейсика). Кстати если вы знаете тему то наверное и пример для вас не проблема? (не из дельфи в 1 действие) а скажем в 2 или даже в 3 (не много прошу?). и чтоб серверная часть работала с соседнего компа (любого в сети). (ну не, это я наверное уже слишком :-)) но с другой стороны нафига он нужен если и клиент и сервер на 1 машине только работает)

надеюсь понятно изьяснил. (кстати спасибо за то что ветку подымаете ;о)))


 
just_1869   (2003-03-12 23:22) [8]

А что такое RDS? =)


 
sniknik   (2003-03-13 00:39) [9]

just_1869 © (12.03.03 23:22)
Remote Data Service - удаленный сервис для доступа к данным, по идее на его основе можно сделать чтото SQL сервера для dbf таблиц к примеру.

работает через DCOM (вернее не работает :-)) пока). т.е. (опять теоретически) запускаеш ты у себя на машине программу она при обращении подымает сервер на соседней через который перекачиваеш данные. если с полным контролем(желательно) то можно ограничивать выборки, ну если например нужна 1 запись из файла, но пока у меня получается только "открыть" таблицу всю т.е. ничем не отличается от файл сервера (чем и недоволен, но еще больше тем что не знаю как записывать, нельзя???).

очень большое достоинство (по хелпам) то что он интегрирован в ADO со всеми вытекающими... к примеру у есть ADODataSet есть свойство RDSConnection через которое ADODataSet может получать рекордсет так же как через ADOConnection.

стандартно доступ идет через сервер DataFactory (вообще не получается запустить) но можно описать свой DCOM обьект (здесь худо бедно работает).


 
just_1869   (2003-03-13 02:59) [10]

Если мне изменяет склероз, то делается это относительно просто:
Создаётся у сервера Remote Data Module (в D7 это Multitier закладка в New), туда ставятся компоненты DataSetProvider, которые вешаются на DataSet"ы.
Затем делаешь в клиентском приложении DCOMConnection или SocketConnection (но в этом случае тебе потребуется запустить на сервере %ProgramFiles%\Delphi7\scktsrvr.exe и у тебя не будет авторизации виндов, прийдётся делать её самому), задаёшь нужные параметры, добавляешь ConnectionBroker, ставишь ему в connection *Connection (Socket или DCOM), дабвляешь ClientDataSet, устанавливаешь у него поле connectionbroker в этого ConnectionBroker и, собственно, всё =) дальше, как с обычным DataSet с ним работаешь =)

основные методы для необычной (чтобы можно было внести на сервере бизнес-логику) работы это DataSetProvider.BeforeUpdateRecord и DataSetProvider.BeforeApplyUpdates. Ну и OnPostError у ClientDataSet, чтобы юзверь имел возможность посмотреть, что же за херня произошла.

Вполне возможно, что я тут херню понаписал, но я в упор не понимаю, нахрена нужен ADO в Delphi =) Разве что для каких-нить нестандартных серверов...

Кстати, не знаю, как через ADO, у меня проблемы возникали с доступом через обычный DCOMConnection. спасла такая вот фигня:

настроить (через dcomcnfg.exe) запуск приложения под одним (а не как принято в Microsoft, под тем, кто залогинился) пользователем, потому что иначе у тебя будет создаваться столько серверов, сколько пользователей зашло на машину =). правда, если ты сервер будешь запускать на Win9x, то система должна быть в домене, иначе ты не сможешь настроить у компоненты юзверя.


 
sniknik   (2003-03-13 08:40) [11]

> Затем делаешь в клиентском приложении DCOMConnection или SocketConnection (но в этом случае тебе потребуется запустить на сервере %ProgramFiles%\Delphi7\scktsrvr.exe...
Обходной путь? попробую вернее посмотрю, у меня Д6 может там по другому. (scktsrvr.exe есть значит и остальное должно присутствовать)

но это немного не то, согласен? я хочу разобратся с конкретной технологией, задачи чтото написать, неважно каким методом лиш бы работало, не стоит.

> но я в упор не понимаю, нахрена нужен ADO в Delphi =) Разве что для каких-нить нестандартных серверов...
ну это ты зря, ADO мощная технология и новая пока, а OLEDB драйвера к ней почти под любую базу есть. (правда некоторые платно :-)). Но это пока новая, как устареет будут их в "нагрузку" давать как сейчас ODBC-шные. :-))

> настроить (через dcomcnfg.exe) запуск....
да это я уже знаю, еще по моему на Win9x патч для поддержки дкома нужен, вроде. но это неважно пока не дошол до 9х, пробую все на 2000. когда понадобятся Win9x тогда и разберемся.


 
Polevi   (2003-03-13 09:14) [12]

если есть Win2k Server с IIS, то лучше всего серверную часть оформить в виде COM+ объекта
обращение к нему с клиентской стороны выглядит так

var
RDS,MyObject:OleVariant;
begin
RDS:=CreateOleObject("RDS.Dataspace");
MyObject:=RDS.CreateObject("MyObj.MyIntf"," HTTP://192.168.1.1");

все

не надо никаких SocketConnection, RDSConnection и тд.
все будет работать по HTTP протоколу, ничего лишнего



 
just_1869   (2003-03-13 11:17) [13]

> sniknik © (13.03.03 08:40)
>> Затем делаешь в клиентском приложении DCOMConnection или
>> SocketConnection (но в этом случае тебе потребуется
>> запустить на сервере %ProgramFiles%\Delphi7\scktsrvr.exe...
> Обходной путь? попробую вернее посмотрю, у меня Д6 может там
> по другому. (scktsrvr.exe есть значит и остальное должно
> присутствовать)

этот обходной путь прокатит только для обычного MIDAS (или как он там в новой дельфе называется)

> но это немного не то, согласен? я хочу разобратся с
> конкретной технологией, задачи чтото написать, неважно каким
> методом лиш бы работало, не стоит.

Разобраться с конкретной технологией - да, согласен, моя идея не подходит. Но зачем через задницу делать то, что можно сделать нормально? Для многоуровневых приложений использовать лучше DataSnap, а для двууровневых (когда есть SQL сервер и твой клиент) dbExpress (собственно, его же использовать между твоим AppServer и SQL Server, DataSnap используется для ремотинга).

Не хочу показаться назойливым, но, имхо, ADO - лишняя нагрузка. Стандартные сервера, которые используются, это MSSQL и Oracle, всё остальное - единицы процентов. Рассеивать внимание на всё, чтобы везде знать понемногу считаю неправильным, больше получает (и имеет возможность сделать) сильный специалист, а не многоцелевой низкоквалифицированный программист.

> ADO мощная технология и новая пока, а OLEDB драйвера к ней
> почти под любую базу есть

ADO - лишняя прослойка, которая иногда доставляет массу хлопот. Я с ней не работал, но считаю, что если она накладывает какие-либо ограничения, использовать её не стоит. Мало того, что добавляется лишний слой, так ещё и ограничивающий возможности.

> Polevi © (13.03.03 09:14)
> все будет работать по HTTP протоколу, ничего лишнего

Снова оговорюсь, что с ADO не работал, но если проводить аналогии с DataSnap, то при обмене через HTTP появляется SSL "на халяву", но пропадают вызовы методов AppServer"a.


 
sniknik   (2003-03-13 11:28) [14]

Win2k Server-а с IIS нет, и не предвидится. есть вин2000про, винНТ(4sp) и вин98 (это где я могу пробовать). Пока пробую только на вин2000про, (повторяюсь) на остальное вроде нужны патчи поэтому пока и не пытаюсь.

> все будет работать по HTTP протоколу, ничего лишнего
:-)) кроме самого HTTP протокола. разве он необходим в локальной сети?

насчет промера, спасибо конечно, но это я и сам могу перевести, пример из ADO210.CHM (кусок)

strServer = " http://<%=Request.ServerVariables("SERVER_NAME")%>"
strConnect = "Provider=SQLOLEDB;User Id=rdsdemo;Password=rdsdemo;Initial Catalog=AddrBookDB"
strSQL = "Select * from Employee"

Sub Run_OnClick()
" Create RDSServer.DataFactory Object
Dim objADORs
" Get Recordset
Set DF = RDS1.CreateObject("RDSServer.DataFactory", strServer)
Set objADORs = DF.Query(strConnect, strSQL)
" Set parameters of RDS.DataControl at Run Time
RDS.Server = strServer
RDS.SQL = strSQL
RDS.Connect = strConnect
RDS.Refresh
End Sub

переведенный на дельфи дает ошибку "не могу создать бизнес обьект"???? по этому поводу возникает куча вопросов. ну к примеру это только для http://? почему не получается обращатся к серверу в локальной сети? варианты \\SERVER, SERVER, \\192.168.0.1, 192.168.0.1, 127.0.0.1 только вот этот к себе и пустая строка тоже к себе работает, а вот 192.168.0.11 нет (а это тоже я) почему? не запускается RDSServer.DataFactory хотя везде стоит по умолчанию (надо дополнительно устанавливать? зачем тогда по умодчанию? и чего он может?) а получается только собственный DCOM. и тд. и тп.

но мы уклоняемся от темы, именно для того и ищу документацию (на понятном мне языке) чтобы подобных вопросов не возникало, а пока у нас все скатывается на обсуждение отдельных пошаговых проблем. спасибо не надо (с ними постараюсь сам справится, перевести 2 строчки с бейсика мне под силу :-)). Если у вас нет Обшего Описания технологии. И примеров жалко (или нет). То ничего не надо (придется самому доходить). И не надо многозначительно посылать в msdn, я там был (может быть побольше вашего, но по другим темам), просто по тем описаниям наверняка потрачу гораздо больше времени (книгу купить дешевле обойдется, (опять повторяюсь) если найду по теме, в интернете вот не получается).


 
sniknik   (2003-03-13 11:34) [15]

just_1869 © (13.03.03 11:17)
> Не хочу показаться назойливым, но, имхо, ADO - лишняя нагрузка. Стандартные сервера, которые используются, это MSSQL ...
а я как раз с MSSQL и Access в основном и работаю.

> ADO - лишняя прослойка, которая иногда доставляет массу хлопот. Я с ней не работал, но считаю, что если она накладывает какие-либо ограничения, использовать её не стоит. Мало того, что добавляется лишний слой, так ещё и ограничивающий возможности.
несогласен, но спорить не буду. вопрос предпочтений.

и разбиратся с RDS начал именно изза того что он в ADO встроен...


 
Polevi   (2003-03-13 14:47) [16]

>just_1869 © (13.03.03 11:17)
коли не работали, нечего другим советовать

>sniknik © (13.03.03 11:28)
плохо были

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/pg_rds_usage_3.asp

задавайте вопросы, постараюсь помочь

а развернутого описания технологии не ждите, про нее толстые книжки написаны, например
Стен Санблэд, Пер Санблэд - Разработка масштабируемых приложений для Windows


 
Polevi   (2003-03-13 14:52) [17]

и если вы смотрели help на RDS.CreateObject то могли бы сами догадаться, почему "и пустая строка тоже к себе работает"

In-process Set object = DataSpace.CreateObject("ProgId", "")

слово In-process о чем нибудь говорит вам ?
если нет то объясняю, что в данном случае вызов будет эквивалентен CreateOleObject("ProgID"), Web Server не участвует в процессе создания объекта


 
sniknik   (2003-03-13 16:47) [18]

> а развернутого описания технологии не ждите, про нее толстые книжки написаны, например
Стен Санблэд, Пер Санблэд - Разработка масштабируемых приложений для Windows
ну как не ждите? буду, если она только в книжках присутствует, ну чтож буду книжку искать.
(спасибо теперь знаю какую)

> слово In-process о чем нибудь говорит вам ?
скорее да чем нет. :-)) (писал внешние компоненты под 1С, о чем это говорит вам?)

больше интересует
DCOM Set object = DataSpace.CreateObject("ProgId", "computername")
по идее должны быть равноправны 127.0.0.1 и 192.168.0.11 (если это мой IP, ведь computername задан неважно что один из них "loopbak" на себя а другой внешний адрес) если я к примеру буду так задавать сервер в ADO соеденении для MSSQL прокатят все 127.0.0.1,192.168.0.11,"(local)","."(точка)," "(пробел), а в этом случае только один.

впрочем догадываюсь, для него равнение другое DataSpace.CreateObject("ProgId", "127.0.0.1")=DataSpace.CreateObject("ProgId", "")=CreateOleObject("ProgID") так?

> плохо были
>....
естественно, пока я и не пытался. хотел более легкого пути.

> задавайте вопросы, постараюсь помочь
вот этого как раз хотел избежать, вопросов слишком много, времени мало, и к чему вопросы если они решаются чтением основ?

да ладно на нет и суда нет.
(снимаю просьбу, не потому что потеряло актуальность, а потому что превратно поняли :о(, мне нужны ответы на вопросы (у меня их просто нет конкретных) а нужна инфа по теме, разница!)


 
Polevi   (2003-03-14 09:28) [19]

>sniknik © (13.03.03 16:47)
слишком просто хотите, зашли на сайтик и все проблемы решены
мне например жалко выкладывать подробный отчет о моей работе с Windows DNA, ибо я потратил на это много своего времени.
я думаю что я не одинок в своем мнении


 
sniknik   (2003-03-14 10:56) [20]

Polevi © (14.03.03 09:28)
если вам жалко то могли бы просто не отвечать.
и кстати я не просто "зашол на сайтик", я здесь довольно долго, и по мере возможностей стараюсь помогать людям (в том в чем силен, в том числе и примерами, не раз и не два) и выкладывал свои наработки и эксперименты в кладовку (правда тут похоже был крах на сайте, осталась только одна проба сервиса на API, остальное не стал еще раз закачивать (у меня с этим проблемы один раз даже просил администратора за меня положить), судя по отсутствию откликов интереса ни у кого не вызвали) все что выкладывал именно в исходниках (в отличии от таких как вы, которым "жалко").

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

p.s. мы опять не про то говорим. и к тому же просьбу я свою снял, в принципе это значит что ветка закрыта
(можно конечно и поболтать, но думаю уже после этого моего поста можно ветку в потрепатся кидать).



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.009 c
4-6843
Тихо
2003-02-04 14:01
2003.04.03
Изменение положения минимизарованного окна!


7-6807
crazyprogman
2003-02-10 02:23
2003.04.03
LIstView


14-6705
Softik
2003-03-15 16:35
2003.04.03
Подскажите аналог QReport, который быстрее и по функциональнее!


7-6818
FilSM
2003-02-10 19:10
2003.04.03
Икона приложения под 98-ой пропадает


1-6474
Лосось в сметане
2003-03-23 19:41
2003.04.03
<<< Проблемы интерфейса в Windows XP >>>





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский