Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Внизпередача указателя Найти похожие ветки
← →
matt © (2004-08-21 15:23) [0]Доброго времени стуток!
Подскажите как передать указатель через Stored Procedure в UDF?
← →
Desdechado © (2004-08-21 15:28) [1]указатель на что?
← →
matt © (2004-08-21 15:30) [2]на область данных в памяти (pointer)
← →
Desdechado © (2004-08-21 15:36) [3]в памяти чего? сервера? а как ты этот указатель получил?
← →
matt © (2004-08-21 15:39) [4]база на локальном хосте, из клиента в базу должен передастся указатель на некую переменную, хранимая процедура передает в UFD которая получив указатель использует по своему усмортрению
← →
Sergey_Masloff (2004-08-21 15:42) [5]matt © (21.08.04 15:39) [4]
Да при чем тут локальный - не локальный. Ты клиентский указатель хочешь передать чтобы использовать его в адресном пространстве сервера? Я правильно понял?
← →
matt © (2004-08-21 15:43) [6]нет, сервер должен получить доступ к адресному пространству клиента
← →
Sergey_Masloff (2004-08-21 15:48) [7]matt © (21.08.04 15:43) [6]
>нет, сервер должен получить доступ к адресному пространству >клиента
Не можешь хотя бы вкратце описать как ты себе это представляешь? Типа ReadProcessMemory()?
← →
matt © (2004-08-21 16:00) [8]есть большая структура данных, скорость занесения этих данных в базу крайне критична. Одно из предложений как ускорить занесения -
не передавать их непосредственно из клиента в базу, а передать лишь
указатель на эту структуру, а после чего UDF самостоятельно занесет их в нужные таблицы.
← →
Sergey_Masloff (2004-08-21 16:06) [9]Извини но это бред. Как UDF занесет их в другие таблицы? Открыв отдельный коннект к базе? Это будет ДИКО медленно и ОЧЕНЬ глючно (если вообще всю эту мясорубку удастся раскрутить).
← →
Desdechado © (2004-08-21 16:11) [10]точно бред
неужели ты думаешь, что передача с клиента на сервер идет медленнее по тому же протоколу, чем по предлагаемому тобой способу?
да и указатель на память в клиенте НЕ ВАЛИДЕН для сервера...
← →
matt © (2004-08-21 16:22) [11]хм.. а если udf просто по указателю будет возвращать значения, а Хранимая процедура уже будет заносить?
← →
Desdechado © (2004-08-21 16:29) [12]вникни в [10], особенно последнюю строку
← →
matt © (2004-08-21 16:32) [13]я прошу прощения, вы не могли бы разьяснить?
← →
Desdechado © (2004-08-21 16:42) [14]В win32 каждая программа (а тем более каждая машина :) работает в своем адресном пространстве. Поэтому адрес AD00F576, указывающий на блок памяти с данными на клиенте в твоей программе, будет в другой программе на этом же клиенте указывать, например, на код какой-нибудь функции, причем в середине. А уж на сервере (машине и процессе) вообще неизвестно что это будет.
← →
matt © (2004-08-21 17:00) [15]я наверно все таки что то не понимаю - UDF это декларированная функция dll, разве я не могу передать в эту функцию указатель на переменную клиента?
а машина как я уже говорил выше - одна
← →
-SeM- (2004-08-21 17:09) [16]Еще раз [14]
"UDF это декларированная функция" сервера, но не клиента!
← →
Desdechado © (2004-08-21 17:14) [17]Даже если клиент и сервер на одной машине, то все равно - у них РАЗНЫЕ адресные пространства. DLL работает в адресном пространстве сервера, а клиент - сам по себе.
← →
jack128 © (2004-08-21 17:24) [18]не то ты делаешь.. Я думаю в направлении external tables думать надо. Хотя конечно это зависит от того что у тя за данные.
← →
kaif © (2004-08-23 03:16) [19]Заноси данные как BLOB, если важна именно скорость занесения.
А потом при чтении данных пусть какая-нибудь UDF уже их разбирает. Это как бы альтернативная идея. Передать указатель не получится. Даже если получится каким-нибудь особенным суперским способом, то и выгрыша никакого я пока не вижу...
Мне как-то попадалась UDF, которая со сносной скоростью разбирала XML-ы, которые в блобах лежали. Можно поискать ее реализацию и сварганить что-то подобное для чтения. А заливать чистые блобы...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c