|
|
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
я пробовал нумерацию и с 0, и с 1 и всяко разно, один фиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2002, 14:24:19 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
2 Dankov данные типа pchar ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2002, 14:27:23 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
опублику весь текст процедуры или кинь на мыло... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2002, 14:28:49 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Все победил ! этот чувак, который делал пример написал тахую фигню: ColName1 : array [0..MAXNAME - 1] of DBCHAR; ColName2 : array [0..MAXNAME - 1] of DBCHAR; где type DBCHAR = Char; после замены этой конструкции на pchar, как советовал Dankov, заработало, мда .......... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2002, 14:32:47 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Народ, привет! Эта тема наверное всех уже здесь задолбала, но я предлагаю раз и навсегда добить ее. Итак: Написание ESP на Delphi , точнее Передача входных/выходных параметров . Только, пожалуйста, не кричите о том что такие вещи на делфяхне пишутся и вообще их писать не обязательно, а если уж надумал - читай BOL, просто кто знает - помогите разобраться, очень надо. Со стрингами вроде бы разобрались - через PChar все работает на ура. Предлагаю разобраться с другими типами. Попробовал к рассматриваемой выше процедуре xp_delphi_echo добавить еще пару входных параметров типа integer и double и пару таких же выходных. Обрабатываю их примерно так. var a: integer; b: double; pa, pb: pointer; ... // получение входных параметров pa:=srv_paramdata(SrvProc, 2); a:=pa^; // получаем integer pb:=srv_paramdata(SrvProc, 3); b:=pb^; // получаем double ... // передача выходных параметров srv_paramset(SrvProc, 5, pointer(a), 0); srv_paramset(SrvProc, 6, pointer(b), 0); или srv_paramset(SrvProc, 5, @a, 0); srv_paramset(SrvProc, 6, @b, 0); В результате из входных параметров получаем только integer в "a", double в "b" не приходит. С выходными еще хуже - в обеих передается пустота. Кто делал что-то подобное - пожалуйста помогайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2002, 16:33:28 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Мда... а в ответ тишина... вариантов 2: или все всё знают и молчат или никому эта фигня не интересна. странно. ладно, буду биться сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2002, 16:44:50 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
а что возвращает srv_paramstatus(SrvProc, 5 и 6)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2002, 18:12:08 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Ну похоже что возвращает статус параметра под номером 5, 6 и т.д. Если есть 5 параметр отсутствует полуем на выходе -1 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odssql/ods_6_ref_06_00fn.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2002, 18:21:43 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
мне не надо это объяснять... я это и так помню.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2002, 18:30:23 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Так в чем проблема? Что зашлешь в параметрах, то и получишь. з.ы. я кажись невьежаю что именно тебя интересует :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2002, 18:32:24 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
чего-то я по адресу http://www.delphi-jedi.org ни чего не нашел ... куда не ткнусь везде говорят AppId кривой и ничего тебе не покажем ... Не выручите случаем библиотечкой и примерами? (mvanew@ngs.ru) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2002, 18:52:50 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Все параметры при вызове присутствуют - здесь все нормально. Проблема вот в чем: srv_paramdata(SrvProc, 2 и 3) насколько я понимаю должны возвращать указатель на параметр, они его действительно возвращают и даже srv_paramtype возвращает правильный тип данных - в моем случае это integer и double, НО при попытке получить значение по эотму указателю pa:=srv_paramdata(SrvProc, 2); a:=pa^; // получаем integer pb:=srv_paramdata(SrvProc, 3); b:=pb^; // получаем double в "a" значение integer мы получаем нормально, а вот в "b" double ни в какую не хочет приходить. С параметрами OUPTUT пока не разбирался. Может я что не так делаю? С указателями то в делфях особо часто работать не приходится - надобности нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 14:49:33 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Я и сам с указателями в паскале не ахти, но похоже беда с привилением типов IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 15:12:08 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Но если указатель-то есть - что-то должно быть и там куда он указывает. Проблема наверное в представлении этой информации. Но выцепить-то ее как-то должно быть можно. А процедурка-то очень нужна, без нее - кранты. Придется ооооочень многое переделывать. На начальном этапе разработки посчитал, что написать ее - пара пустяков и оставил на потом, так что сейчас уже почти все готово, кроме нее. Уже месяц ползаю по инету в поисках - пусто. Этот форум - почти единственный, где затрагивалась эта тема. Приходит в голову только 1 тупой выход - все конвертить в varchar и передавать через него, но это же полный бред. Так что спецы по указателям и подобным делам - помогайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 15:33:59 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
Варчар тоже может не спасти. Наверное глупо грит о преходи на Визул Си, но там таких проблем нет. А если b объявить как вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 15:41:34 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
variant попробуем, но что-то слабо верится А насчет Си - процедурка довольно навороченная, а Си я почти не знаю, так что будут проблемы. Единственное - можно попробовать написать длллину на Си, которая будет вызывать мою процедуру из делфевой длллины. Работа на Си будет сведена к минимуму, но это уже извращения, хочется сделать как-то по-правильнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 16:10:12 |
|
||
|
расширенная процедура
|
|||
|---|---|---|---|
|
#18+
я думаю что в дельфях есть отладчик.... посмотри в нем что и куда пишется.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2002, 16:16:21 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1820764]: |
0ms |
get settings: |
5ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 385ms |

| 0 / 0 |
