powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / расширенная процедура
19 сообщений из 44, страница 2 из 2
расширенная процедура
    #32039979
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пробовал нумерацию и с 0, и с 1 и всяко разно, один фиг
...
Рейтинг: 0 / 0
расширенная процедура
    #32039982
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
расширенная процедура
    #32039983
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dankov данные типа pchar
...
Рейтинг: 0 / 0
расширенная процедура
    #32039984
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опублику весь текст процедуры или кинь на мыло...
...
Рейтинг: 0 / 0
расширенная процедура
    #32039987
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все победил !
этот чувак, который делал пример написал тахую фигню:
ColName1 : array [0..MAXNAME - 1] of DBCHAR;
ColName2 : array [0..MAXNAME - 1] of DBCHAR;
где
type
DBCHAR = Char;

после замены этой конструкции на pchar, как советовал Dankov, заработало, мда ..........
...
Рейтинг: 0 / 0
расширенная процедура
    #32041285
bug76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, привет!
Эта тема наверное всех уже здесь задолбала, но я предлагаю раз и навсегда добить ее.
Итак: Написание 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" не приходит. С выходными еще хуже - в обеих передается пустота.

Кто делал что-то подобное - пожалуйста помогайте.
...
Рейтинг: 0 / 0
расширенная процедура
    #32041923
bug76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда...
а в ответ тишина...
вариантов 2: или все всё знают и молчат или никому эта фигня не интересна. странно.
ладно, буду биться сам.
...
Рейтинг: 0 / 0
расширенная процедура
    #32041969
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что возвращает srv_paramstatus(SrvProc, 5 и 6)...
...
Рейтинг: 0 / 0
расширенная процедура
    #32041971
sorgery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну похоже что возвращает статус параметра под номером 5, 6 и т.д. Если есть 5 параметр отсутствует полуем на выходе -1

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odssql/ods_6_ref_06_00fn.asp
...
Рейтинг: 0 / 0
расширенная процедура
    #32041982
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне не надо это объяснять...
я это и так помню....
...
Рейтинг: 0 / 0
расширенная процедура
    #32041984
sorgery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так в чем проблема? Что зашлешь в параметрах, то и получишь.
з.ы. я кажись невьежаю что именно тебя интересует :-(
...
Рейтинг: 0 / 0
расширенная процедура
    #32041991
Mva New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чего-то я по адресу http://www.delphi-jedi.org ни чего не нашел ... куда не ткнусь везде говорят AppId кривой и ничего тебе не покажем ...

Не выручите случаем библиотечкой и примерами? (mvanew@ngs.ru)
...
Рейтинг: 0 / 0
расширенная процедура
    #32042177
bug76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все параметры при вызове присутствуют - здесь все нормально.
Проблема вот в чем: 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 пока не разбирался.
Может я что не так делаю? С указателями то в делфях особо часто работать не приходится - надобности нет.
...
Рейтинг: 0 / 0
расширенная процедура
    #32042181
sorgery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я и сам с указателями в паскале не ахти, но похоже беда с привилением типов IMHO
...
Рейтинг: 0 / 0
расширенная процедура
    #32042192
bug76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но если указатель-то есть - что-то должно быть и там куда он указывает. Проблема наверное в представлении этой информации. Но выцепить-то ее как-то должно быть можно.

А процедурка-то очень нужна, без нее - кранты. Придется ооооочень многое переделывать. На начальном этапе разработки посчитал, что написать ее - пара пустяков и оставил на потом, так что сейчас уже почти все готово, кроме нее. Уже месяц ползаю по инету в поисках - пусто. Этот форум - почти единственный, где затрагивалась эта тема.
Приходит в голову только 1 тупой выход - все конвертить в varchar и передавать через него, но это же полный бред.

Так что спецы по указателям и подобным делам - помогайте.
...
Рейтинг: 0 / 0
расширенная процедура
    #32042193
sorgery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варчар тоже может не спасти. Наверное глупо грит о преходи на Визул Си, но там таких проблем нет. А если b объявить как вариант?
...
Рейтинг: 0 / 0
расширенная процедура
    #32042200
bug76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
variant попробуем, но что-то слабо верится

А насчет Си - процедурка довольно навороченная, а Си я почти не знаю, так что будут проблемы. Единственное - можно попробовать написать длллину на Си, которая будет вызывать мою процедуру из делфевой длллины. Работа на Си будет сведена к минимуму, но это уже извращения, хочется сделать как-то по-правильнее
...
Рейтинг: 0 / 0
расширенная процедура
    #32042205
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю что в дельфях есть отладчик....
посмотри в нем что и куда пишется....
...
Рейтинг: 0 / 0
расширенная процедура
    #32046645
Leonid Belousov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Компонент такой для Delphi написал, летает и не жужжит... смотрите сюда:
http://www.bramc.ru/soft/xproc.html
Только он не фришный...
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / расширенная процедура
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]