SQL 2005: tworzenie funkcji agregującej
RAM - 19-07-2006 00:45
SQL 2005: tworzenie funkcji agregującej
Dzień dobry, Uczę się SQL Servera 2005 i potrzebuję zdefiniować funkcję agregującą .NET. W tym celu napisałem assembly DemoSQLServer, którego kawałek wygląda tak:
namespace DemoSQLServer { public sealed class Demo { ...
[SqlUserDefinedAggregate(Format.Native, Name="AvgNoMinMax")] public struct AvgNoMinMax { public void Init() { ... } public void Accumulate(SqlDouble value) { ... } public void Merge(AvgNoMinMax group) { ... } public SqlDouble Terminate() { ... } } } }
Skompilowałem i dodałem do bazy DemoSQLServer. Problem pojawił się gdy próbowałem utworzyć agregat w SQL Serverze:
CREATE AGGREGATE AvgNoMinMax(@wartość float) RETURNS float EXTERNAL NAME [DemoSQLServer].[DemoSQLServer.Demo.AvgNoMinMax]
Otrzymałem błąd:
CREATE AGGREGATE failed because it could not find type 'DemoSQLServer.Demo.AvgNoMinMax' in assembly 'DemoSQLServer'.
Nie rozumiem tego komunikatu, ponieważ moje assembly zawiera też funkcje, procedury i triggery, które mogłem dodać bez problemu. Uprzejmie proszę o pomoc. /RAM/
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
RAM - 19-07-2006 00:45
Udało mi się utworzyć funkcję po przeniesieniu jej poza klasę Demo.
CREATE AGGREGATE AvgNoMinMax(@wartość float) RETURNS float EXTERNAL NAME [DemoSQLServer].[DemoSQLServer.Demo.AvgNoMinMax]
Czy możecie mi wytłumaczyć proszę dlaczego musze napisać
SELECT dbo.AvgNoMinMax(Cena) FROM Wydania
a nie mogę po prostu
SELECT AvgNoMinMax(Cena) FROM Wydania
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Maciej =?iso-8859-2?Q?=A3uszczy=F1ski?= - 19-07-2006 00:45
> Czy możecie mi wytłumaczyć proszę dlaczego musze napisać > > SELECT dbo.AvgNoMinMax(Cena) FROM Wydania > > a nie mogę po prostu > > SELECT AvgNoMinMax(Cena) FROM Wydania
A to akurat dosc elementarne Watsonie - takie jest przyjete wywolanie dla funkcji skalarnych (czyli zwracajacych dokladnie jedna wartosc).
Pozdrawiam, Macko -- *** A czym się różni Cray od normalnego peceta? *** Tym, że Cray wykonuje pętle nieskończone w 10 sekund.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
[newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?=
ms sql server - =?ISO-8859-2?Q?domy=B6lny_format_kolumn_ty?==?ISO-8859-2?Q?pu_datetime?=
zanotowane.pldoc.pisz.plpdf.pisz.plradioaktywni.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|