Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-1092995027
Kerk
2004-08-20 13:43
2004.09.19
"Ночной дозор" купили американцы


1-1094544199
Андрей2
2004-09-07 12:03
2004.09.19
В чем ошибка в следующем коде?


1-1094122824
sdan
2004-09-02 15:00
2004.09.19
BarCode


14-1094036140
Real
2004-09-01 14:55
2004.09.19
Восстановление нормальной загрузки Win9x - Win2000 - Linux


3-1092875123
Corvin
2004-08-19 04:25
2004.09.19
Как поменять месяц в дате средствами sql





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский