|
|
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Добрый день, 1. Создали dll ( multy..) при запуске вида o=CREATEOBJECT('WS_SERVER.WS_MES_SERVER') ? o.test RELEASE o не открывает базу данных где, сохр коннект к мс скуель, хорошо используем SQLCONNECT c расширенными парметрами - одбс имя, имя польз, пароль - соотв базу данных не открываем заработало, но уже не работает в SQLEXEC - 1466 - типа неверный дискриптор в вызове вида: o=CREATEOBJECT("MSSoap.SoapClient30") o.MSSoapInit("http://sergey04/ws_server/ws_mes_server.WSDL") ? o.test release o Вопрос как создать коннект к MS SQL?? и 2. Как вызвать метод - o.test из Inet Explorer; в строке вида http://sergey04/ws_server/ws_mes_server.WSDL отображен XML текст - увы не знаю как вызвать метод тест, а ещё бы как бы параметр ему передать или несколько параметров?? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 13:29:51 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Надо даждатся пока Sergey Ch не ответит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:12:20 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
SamvelНадо даждатся пока Sergey Ch не ответит Для начала бы статью прочитать про Web Services, примеры сделать, а затем просто заменить источник данных на MS SQL Server... и все... But anyway, good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:31:55 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Sergey Ch SamvelНадо даждатся пока Sergey Ch не ответит Для начала бы статью прочитать про Web Services, примеры сделать, а затем просто заменить источник данных на MS SQL Server... и все... But anyway, good luck! Ваша же статья!? Вы вопрос, извините, наверно, не прочли. Да и источник данных "MS SQL Server... и все..." используется.. Только не соединяется с ним функция SQLConnection при обращ к данной Web service из фокса - получается и 9.0 фокс не смог нормальный COM сервер создать? ну в вопросе я указал, что через непоср. dll работает. Как сделать то ? - реальный вот пример на основе Вашей статьи. Как обращаться к методу из inet Explorer? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 17:13:58 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Oleg1113 Как обращаться к методу из inet Explorer? Создать простую ASP или ASP.NET страницу и вывести туда данные... Такой Вариант Вы пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 17:59:09 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Oleg1113 Только не соединяется с ним функция SQLConnection при обращ к данной Web service из фокса - получается и 9.0 фокс не смог нормальный COM сервер создать? Простите, но я Вас не понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 18:00:56 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Sergey Ch Oleg1113 Только не соединяется с ним функция SQLConnection при обращ к данной Web service из фокса - получается и 9.0 фокс не смог нормальный COM сервер создать? Простите, но я Вас не понимаю... Дело всё в том, что как я указал в вопросе при создании подобного как у Вас o=CREATEOBJECT("MSSoap.SoapClient30") o.MSSoapInit("http://sergey04/ws_server/ws_mes_server.WSDL") ? o.test release o в методе тест вызывается функция VFP 9.0 SQLConnection c с тремя параметрами - имя ОДБС, пользователь, пароль, для ОДБС указано имя сервера, база данных ну как обычно в параметрах/свойствах Вот если вызвать метод тест первым способом, как я указал вопросе, в варианте из Вашей статьи, тогда SQLconntction работает, ну не говорит что 1466 - неверный типа дискриптор соединения... Что можно сказать по этому поводу, если возможность чтобы функция COM сервера адекватно работала, что можно сказать по этому поводу? Также был бы Вам признателен за примерный набросок вызова .WSDL с параметрами методу в тексте ASP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 22:13:05 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
1. Теперь приведите здесь Ваш метод Test... 2. Пример Classic ASP (Выбор группы товара) (В примечании забит тот-же пример с классическим источником данных для сравнения) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 3. Метод getasb01 - источник данных FoxPro Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. P.S. Этому коду более 5 лет, так что он не очень красив... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 12:12:44 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Спасибо за пример, разберусь... вот метод тест project file name is 'mydll.pjx' DEFINE CLASS SERVER AS SESSION OLEPUBLIC PROCEDURE INIT SET SAFETY OFF SET DATE GERMAN set cent off SET MULTILOCKS ON SET REPROCESS TO 1000 SET STRICTDATE TO 0 *!* If you do any work with SQL Pass-Through *!* these settings are a good idea. SQLSETPROP(0,"DispLogin",3) SQLSETPROP(0,"DispWarnings",.F.) ENDPROC PROCEDURE test AS Integer *open database c:\ws\data SHARED **nSQL = sqlConnect("SQL") ****************** ** !! For call of dll like createobject(mydll.server) - do not work ****************** nSQL=SQLCONNECT("SQL Server","user", "pass") *** **where "SQL Server" is my ODBC connection name ** - now work in createobject(mydll.server) *** without errors at all *** ? o.test returns 1 and excell with data is running dBegin = {^2000-01-01} dEnd = {^2005-07-26} cTitle = ALLTRIM(client.nomerdog) sSqlText='EXEC sp_getReport '+'"' + dToC(dEnd) + '", "' + cTitle + '"' nExecCode=sqlExec(nSQL,sSqlText , "report1") * ******** ******************** *** !!Error in SqlExec - nSQL discriptor is incorrect -1466 *** in call like that: o=CREATEOBJECT("MSSoap.SoapClient30") ** o.MSSoapInit("http://mycomp/oleg/SERVER.WSDL") **? o.test - error ! **************** *set step on IF nExecCode<0 MESSAGEBOX("Error in select") MESSAGEBOX(sSqlText) RETURN ENDIF if recCount() = 0 WAIT WINDOW "No data from "+dToC(dbEGIN)+" to "+ dToC(dEnd) return endif Exc = CreateObject( "Excel.Application" ) Exc.Visible = .f. Exc.DisplayAlerts = .f. Exc.Workbooks.Add List = Exc.ActiveSheet() nSize = 2 nCenter = -4108 nRight=-4152 i = 0 nGlobal = 0 *do footer ********** ********** *Exc.Visible = .T. *set step on Range = List.Range("C1") Range.Value = 'My company' Range.Font.Bold = .T. Range.Font.Italic = .T. Range.Font.Size = 8 Range.HorizontalAlignment = nCenter List.Range("A1:H1").Borders(-4107).Weight = nSize List.Range("A1:H1").Select Exc.Selection.Merge select report1 scan ** output to excell enscan Exc.Visible = .T. RETURN (1) ENDPROC ENDDEFINE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 16:53:02 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Ну и наварочено в TEST 1. Смешаны команды, которые применять нельзя в Web Services (like WAIT WINDOW, MESSAGEBOX etc.)... 2. Никак не могу понять, что Вы там хотите сделать. Что-то вывести в Excel? Это прсто задача для развития или что-то практическое? 3. Я бы тут поступил просто - убрал бы все команды и добавлял бы их по одной, чтоб понять где ошибка... Хотя вот даже место Код: plaintext Просто прочитайте про SQL Server - к Web Services Ваши вопросы имеют мало отношения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 18:13:46 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Hi Oleg1113! После SQLCONNECT() нужно проверять что было возвращено - если -1 - то AERROR() и инфу передать наружу через COMRETURNERROR(). И потом уж анализировать почему коннект был неудачен. Также в том классе который является OLEPUBLIC опиши обработчик события Error - чтобы он все ошибки возвращал наружу через COMRETURNERROR()... Если есть другие классы - то и из них нужно предусмотреть возврат ошибки наружу. Вообще работа WS отличается от работы "просто dll" в основном тем, что идёт из под другого аккаунта - IIS-ового или ASPNET. Естественно, что этим аккаунтам могут быть недоступны твои DSN-ы (особенно если они USER или File DSN), могут быть недоступны сетевые ресурсы и т.п. Вместо SQLCONNECT() я бы использовал SQLSTRINGCONENCT() ЯВНО прописывая строку соединения, БЕЗ DSN - т.е. Driver={SQL Server} и т.д. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 00:56:10 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Sergey ChНу и наварочено в TEST 1. Смешаны команды, которые применять нельзя в Web Services (like WAIT WINDOW, MESSAGEBOX etc.)... 2. Никак не могу понять, что Вы там хотите сделать. Что-то вывести в Excel? Это прсто задача для развития или что-то практическое? 3. Я бы тут поступил просто - убрал бы все команды и добавлял бы их по одной, чтоб понять где ошибка... Просто прочитайте про SQL Server - к Web Services Ваши вопросы имеют мало отношения... по 1. да Вы правы по 2. естес-но практическое по 3. ну где ошибка сообщается строка такая-то - я привел в вопросе где..(? :) ) ну и SQL Seever тоже ни причем - я ведь указываю что, ЧТО при вызыве типа mydll.server ... o.test ВсЁ работает .. + у нас настроено так что символьную дату типа german он понимает, так что ... ____ Спасибо Igor Korolyov буду проверять Ваши мысли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 10:27:58 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Oleg1113по 3. ну где ошибка сообщается строка такая-то - я привел в вопросе где..(? :) ) ну и SQL Seever тоже ни причем - я ведь указываю что, ЧТО при вызыве типа mydll.server ... o.test ВсЁ работает .. + у нас настроено так что символьную дату типа german он понимает, так что ... Подождем, пока Вы не сделаете, то что Вам рекомендовал Igor Korolyov, а там уже посмотрим, если ошибка не уйдет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 10:57:20 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
SQLcoonectstring вообще не работает в данном случае да возвращает -1, хотя из среды ( VFP ) проходит. Обработчик ошибок думаю пока не принципиально номер ошибки известен в программе пишем IF nSQL < 0 return 2 ( т.к. метод возращ. инт ) соотв. рез-т 2 - не соед. SQLConnect По аккаунтам ну я же создаю объект o.MSSoapInit("http://mycomp/oleg/SERVER.WSDL") , т.е. я создаю его под IWAM_mycomp - встроенная учетная запись для запуска ИИС, и со своего компа я вхожу по анонимной записи IUSR_mycomp что тогда надо сделать для анонимной записи, включить её в домен? а потом через ЕМ предоставить права для локальной учетной записи? вообщем путаница какая-то это есть ложный след ..., потому что 1. В SQL connect стоит системное имя, которое проходит и из Visual Basica и Sharpa 2. С успехом данную процедуру переписали на С++++ права системные всё работает, а код VFP использовать так и не смогли НЕ работает... Резюме данный пример приобретает теперь теоритеческое, значение . Вот и реальный пример доказал всё-таки приемущество С++++ над VFP жаль мне в общем... хорошая программа ( VFP ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 15:44:36 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Вот примерно как я делал год назад небольшой проект. Пример простой - идет вызов курсора с правами клиента внутри программы (хотя я так уже не пишу больше): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2005, 17:10:34 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Hi Oleg1113! 1) Далеко не факт что C++ программа работает через ODBC драйвер 2) Взять таки и посмотреть информацию AERROR() после НЕудачного коннекта и решить эту проблему - ну никак нельзя. Я думаю что для того аккаунта, под которым ты запускал сервис просто не прописан ODBC драйвер - вот он и не может его найти... P.S. Списывать свои личные неудачи на среду - мягко говоря странно. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2005, 21:47:04 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi Oleg1113! 1) Далеко не факт что C++ программа работает через ODBC драйвер 2) Взять таки и посмотреть информацию AERROR() после НЕудачного коннекта и решить эту проблему - ну никак нельзя. Я думаю что для того аккаунта, под которым ты запускал сервис просто не прописан ODBC драйвер - вот он и не может его найти... P.S. Списывать свои личные неудачи на среду - мягко говоря странно. Posted via ActualForum NNTP Server 1.2 Вы просто не пробовали - 1. запустите web services чтобы открылся excel ... ( вызов типа o.MSSoapInit("http://mycomp/oleg/SERVER.WSDL") ??(?) 2. как указать ожидание чтобы выполнилась долгая хранимая процедура здесь же просто SLQConnection или stringconnection ?? (чтобы он не сообщил (ms sql) что время истекло ) ...можно соединение осуществить конечно ... дело в том что среда не совсем приспособлена для такого рода задач ( примеры о другом ( т.е. вообще ..) думаю можно не приводить ) так бывает, ничего странного в этом увы нет... Sharp более гибок в ЭтоМ случае поэтому переписали на нём вот и всё... позвольте уточнить про аккаунт, какой? .. под IWAM_mycomp - встроенная учетная запись для запуска ИИС, или IUSR_mycomp или ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 15:50:55 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Hi Oleg1113! > Вы просто не пробовали Естественно, ибо в твоём коде надо слишком много чего править, дабы он заработал. > 1. запустите web services чтобы открылся excel ... Я запускаю процедуры генерации Excel докуменитов из простой COM dll работающей с ASPNET приложением, и из COM+ приложения (объект которого запрошен тем-же самым ASPNET приложением, но уже с другого компьютера) - и всё замечательно отрабатвает - ЕСТЕСТВЕННО что никакой Exc.Visible = .T. там и в помине нету - извини, но мне недосуг объяснять почему из WS и вообще из любых "серверных" приложений нельзя НИКАКОГО интерфейсного взаимодействия делать - ни Messagebox, ни Excel.Visible = .T. Просто прими это как аксиому. > 2. как указать ожидание чтобы выполнилась долгая хранимая процедура Ожидание ГДЕ? Если в самой COM процедуре (методе объекта) - то просто использовать синхронный вызов (он вообще по умолчанию всегда и есть синхронный) и настроить таймауты. Если на стороне WS клиента - то смотреть свойства SOAP объекта - там где-то есть свой таймаут... > Sharp более гибок в ЭтоМ случае поэтому переписали на нём вот и всё... И флаг вам в руки! A у меня всё отлично работает на фоксе (правда с родными dbf-ами, до серверного хранилища руки пока не дошли, хотя на тестах никаких серьёзных проблем не было - пришлось только для Oracle client в настройках сменить тип авторизации, ибо под дефолтным не работало соединение из под системных аккаунтов - причём любых системных! Но то фишки клиента, а не фокса). Так что так и пишите - "мы не смогли сделать на VFP" - а не категоричное "Sharp более гибок в ЭтоМ случае" - т.к. это НЕПРАВДА - в частности с Office вплоть до 2003 версии, NET работает абсолютно по идиотски - там совершенно серьёзно рекомендуют делать просмотр списка запущенных процессов и убивать "лишние" инстансы Excel.exe - которые из-за кривости COM interop остаются в памяти после использования... А вот, к слову сказать, ASPNET приложение колбасит не по детски - перегружается оно отчего-то спонтанно, запросы от клиентов теряет... Разработчик плюнул на это и пошёл в отпуск - а до того 2 недели боролся, пришлось через ж... сделать - "внешнее" сохранение данных web-Request-а дабы система хоть как-то заработала... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 01:42:52 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Oleg1113 позвольте уточнить про аккаунт, какой? .. под IWAM_mycomp - встроенная учетная запись для запуска ИИС, или IUSR_mycomp или ?? IUSR_mycomp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 10:39:57 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Я запускаю процедуры генерации Excel докуменитов из простой COM dll работающей с ASPNET приложением, и из COM+ приложения (объект которого запрошен тем-же самым ASPNET приложением, но уже с другого компьютера) - и всё замечательно отрабатвает Прекрасно, буду Вам признателен за небольшой пример (-ы если -> "и из COM+ приложения" если можно ) Просто я не особо просвещен ( пока ) про СОМ+, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2005, 12:19:44 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Hi Oleg1113! Чес слово недосуг этим сейчас заниматься, а слать же всю универсальную компоненту я не могу по ряду причин. Просто следуй приведенным советам - прежде всего убери все интерфейсные взаимодействия, и всегда учитывай, под каким аккаунтом ты работаешь (чтобы хватило прав и на запись результата в указанную папку). Для работы с ODBC - используй СТРОКУ подключения БЕЗ DSN - т.е. Driver={SQL Server}; и т.д. - для простоты - разреши на сервере mixed авторизацию, и в строке подключения пропиши явно логин и пароль. COM+ приложение создаётся парой кликов мышой в апплете Component Services - в "компоненты" приложения просто перетяни из проводника свою dll-ку и всё. Для работы на том-же компе больше ничего и не надо - для работы с другого - надо настроить Firewall (в MSKB или где-то в другом месте на сайте MS описано как это сделать), и настроить безопасность данного приложения - в частности разрешить тому доменному аккаунту под которым будет стучаться к этой компоненте клиент активацию и создание объектов. Учти, что в 2-х строчках и 5-ти словах такие вещи НЕВОЗМОЖНО полноценно описать. Так что если это реально интересно/нужно - то в поиск и чтение статей, коих достаточно много. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2005, 01:23:45 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Я запускаю процедуры генерации Excel докуменитов из простой COM dll работающей с ASPNET приложением, и из COM+ приложения (объект которого запрошен тем-же самым ASPNET приложением, но уже с другого компьютера) - и всё замечательно отрабатвает - ЕСТЕСТВЕННО что никакой Exc.Visible = .T. там и в помине нету - извини, но мне недосуг объяснять почему ... Да, я как раз про то как посредсвом web служб вызвать dll сформир VFP и может быть вы обладаете какой либо информацией по этому вопросу, намекните если знаете ... надо же на чем-либо более менее понятном закрыть тему ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2005, 11:20:09 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
To: oleg1113 Может Вам просто надо получть Excel файл согласно критерий выборки и переслать его на клиента? Для этого сам Excel не нужен - FoxPro прекрасно справляется с этой задачей самостоятельно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2005, 12:13:18 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
мне тоже интересно для чего здесь excel если не секрет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2005, 14:07:09 |
|
||
|
Реальная ситуация с Web services
|
|||
|---|---|---|---|
|
#18+
Действительно, гм, ) VFP формирует dll ( ну там из проекта ) dll прекрасно работает ( я уже приводил код, про excel = .t. и тп. ) вот как раз на основе хорошей, но неск. длинноватой статьи, от Sergey Ch. только не через webservises. Вот как бы взять эту, т.н. обычную dll и вызвать посредсвом чего-либо в web приложении... Пусть это будет cgi там скрипты и т.п., java, c++ и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2005, 18:06:38 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33202907&tid=1593662]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 490ms |

| 0 / 0 |
