ďťż
 
SQL 2005: tworzenie funkcji agregującej ďťż
 
SQL 2005: tworzenie funkcji agregującej
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • radioaktywni.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com