![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
про SQL
SklifF © (2001-12-05 11:32:00)Можноли в SQL использовать функции написанные в делфях, т.е.
к примеру
function(..)
begin
end;
sql.add("select function (...) as .. from...")
Dick Gonsales (2001-12-06 07:18:00) [1]Вариант 1
Если твой SQL сервер не держит mod(), then
1. Создать на нем StoreProc которая возвращет курсор
fetch cursor
a=x/y
a - урезаешь(не округляешь) дробную часть
x-a= дает тебе остаток целочисленного деления x на y.
next
Вариант 2
В Delphi в DBGird вешаешь вычисляемое поле по
выше приведенному алгоритму.
Dick (2001-12-05 21:43:00) [2]Если это не аггрегатная ф-ция, то можно использовать вычисляемые поля.
strahov (2001-12-05 15:16:00) [3]Для InterBase сервера фмрмы Боман - можно см. <Ghost>. Необходимо знать о совместимости параметров. Полученную .dll помещаешь BIN Дельфы или в патче оси. Каждая ф-ция определяется оператором declare external function.
Пример:
function f1(par:integer):integer;cdecl;export
begin
...
end;
...
exports f1;
на стороне сервера
declare external function MeFunc integer
returns integer by value
entry_point "f1"
module_name "myudf.dll"
Успехов
Val (2001-12-05 13:14:00) [4]>SklifF (05.12.01 12:22)
Вы ответы читаете на свои вопросы? По-моему эта ветка практически повторяет вашу предыдущую.
SklifF (2001-12-05 12:22:00) [5]а что с последним моим вопросом?
Ghost (2001-12-05 11:59:00) [6]Почему нет? оформляешь функцию в виде dll, подцепляешь к SQL-серверу в виде UDF и юзай на здоровье, где и как хочешь.
Напрямую же из Delphi естественно функцию никто, кроме твоей проги не знает и не видит, т.е. каким образом SQL-сервер узнает о ее существовании?
SklifF (2001-12-05 11:57:00) [7]begin
sql.clear;
sql.add("select (sum(Tel."Hour")*3600 + sum(Tel."Min")*60 + sum(Sec)) as sec_time from "Tel.db" Tel ");
sql.add("where Tel.Telephon Like "8%" and Tel.Nomber="+#39+ComboBox1.Items[ComboBox1.ItemIndex]+#39);
Open;
ComboBox1.SetFocus;
end;
а как тогда в этод код вставить функцию деления на целое..т.е. mod(x,y)
Nest (2001-12-05 11:34:00) [8]Мягко говоря- НЕТ!