Avatar billede borrisholt Novice
28. december 2005 - 08:32 Der er 1 løsning

Hvordan scripter man en UDF ?

Jeg bruger det følgende script til at scripte tabeller med. Jeg generer noget Delphi kode ud af det.

select
  SysObjects.name AS FunctionName,
  SysObjects.ID,
  SysColumns.name AS ColumnName,
  SysColumns.colid AS FieldID,
  SysTypes.name AS ColumnType,
  SysColumns.length,
  SysTypes.length AS StandardLength,
  SysObjects.crdate,
  SysObjects.refdate,
  SysColumns.isnullable AS AllowNulls,
  SysObjects.XType AS ObjectType
FROM
  SysColumns (NOLOCK)
INNER JOIN
  SysTypes (NOLOCK) ON SysColumns.xtype = SysTypes.xtype
INNER JOIN
  SysObjects (NOLOCK) ON SysColumns.id = SysObjects.id
where
  SysObjects.parent_obj = 0
and
SysObjects.Name = 'GenerateSalid'
order by
  SysObjects.Name, SysColumns.Name

Det fungerer også til at scripte UDF'er med. Men hvordan finder jeg ud af hvad der er min parametre liste, og hvad der er felter i en retur tabel ?

Jens B
Avatar billede borrisholt Novice
28. december 2005 - 10:55 #1
Jeg fandt ud af det selv :

Hvis din UDF retunerer en tabel tilføjer du det følgende for at få tabel definitionen:

AND
  NOT (SysColumns.Number = 1 OR (SysColumns.Number = 0 AND sysobjects.xType = 'FN'))

hvis den ikke retunerer en tabel fjerne du blot not, altså tilføjer :
AND
  (SysColumns.Number = 1 OR (SysColumns.Number = 0 AND sysobjects.xType = 'FN'))

Retur variablen har FieldID 0.

Jens B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester