08. august 2003 - 12:20
Der er
8 kommentarer og 1 løsning
sp_OAMethod - Databases("CMS").Tables("sysModule").Script(5)
Når jeg udfører: EXEC sp_OAMethod @object, 'Databases("CMS").Tables("sysModule").Script(5)' vil jeg gerne have fat i outputtet fra Databases("CMS").Tables("sysModule").Script(5) - hvilket skulle kunne gøres sådan: EXEC sp_OAMethod @object, 'Databases("CMS").Tables("sysModule").Script(5)', @Output OUTPUT Men hvad type skal @Output så være? Der bliver returneret en string - men det virker ikke hvis jeg sætter @Output til at være af typen varchar...
Annonceindlæg fra Infor
08. august 2003 - 13:54
#1
Lidt flere detaljer tak :) Så som f.eks. den fejlmedelelse du får og datatypen for den søle du vil returnere fra tabellen sysModule Din syntax ser rigtig ud.
08. august 2003 - 13:57
#2
Jeg får ingen fejlmeddelelse... det virker jo på en måde godt nok - jeg får bare ikke fat i outputtet fra kaldet. Jeg kunn jo skrive: EXEC sp_OAMethod @object, 'Databases("CMS").Tables("sysModule").Script(5, "c:\fil.sql")' som så ville gemme outputtet i en fil - men jeg vil hellere have det i en variabel, så jeg kan arbejde videre med det :-) Datatypen er "string" i SQL-DMO. Jeg vil ikke have noget af indholdet fra sysModule - blot den SQL som har genereret tabellen... Der er måske andre måder at få fat i den SQL på?
08. august 2003 - 13:59
#3
Hjælpen til Script-metoden kan findes her (hvis man har Books Online installeret): mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\sqldmo.chm::/dmoref_m_s_0n1g.htm
08. august 2003 - 14:04
#4
Troede egentlig jeg kunne benytte sp_helptext til at finde SQL'en, men den virker vist ikke for tabeller? Når jeg udfører den får jeg i hvert fald: There is no text for object 'sysModule'.
08. august 2003 - 14:09
#5
Heh, jeg havde faktisk ikke set det var en system procedure. Men: Som udgangspunkt ser det ikke ud som om det er en output parameter du har der. Prøv lige det her: EXEC sp_OAMethod @object,@Output = 'Databases("CMS").Tables("sysModule").Script(5, "c:\fil.sql")' OUTPUT
08. august 2003 - 14:12
#6
Nu hjælper det jo så ikke meget at sætte OUTPUT på en parameter som ikke kan være OUTPUT... sp_OAMethod objecttoken, methodname [ , returnvalue OUTPUT ] [ , [ @parametername = ] parameter [ OUTPUT ] [ ...n ] ] (mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_sp_oa-oz_9uzo.htm)
08. august 2003 - 14:27
#7
Hvis du bare skal bruge sourcen til tabellen og du ikke har adgang til enterprise manageren, kan du jo bare lave et scripting host object. Det har også et COM interface så vidt jeg husker. Lige et spørgsmål til, er det et SQLServer objekt du har lavet med sp_OACreate eller?
08. august 2003 - 18:24
#8
Jeg har adgang til Enterprise Manageren, men vil gerne kunne hente sourcen til mine tabeller ud vha en SPROC. @object laver jeg sådan: EXEC sp_OACreate 'SQLDMO.SQLServer', @object OUT
19. august 2003 - 11:07
#9
Hmm... så må jeg jo nok desværre droppe det :-(
Computerworld tilbyder specialiserede kurser i database-management