19. maj 2009 - 18:08Der er
6 kommentarer og 1 løsning
MSSQL skrive data til text fil indeholdende enter og ctrl+z
Hej,
Jeg skal til at skrive nogle data fra min database til en fil ved hjælp af EXEC Filen skal indeholde en kommando som skrives til en comport hvorpå der sidder et gsm-modul til at sende en sms.
I hyperterminal kan jeg skrive: AT+CMGF=1 <og så trykker jeg enter> AT+CMGS="004524587896" <og så trykker jeg enter> derefter venter hyperterminal på min tekst og når den er skrevet skal jeg trykke ctrl+z ... og så sendes sms´en til mobilen
Hvordan kan jeg skrive samme tekst fra mssql til en fil ? Jeg har fået den til at skrive nogle data, men mit problem er at jeg skal have enter og ctrl+z med i filen.
Er det noget med at bruge char eller ascii funktionerne?
Har nogen et eksempel eller en ide til dette ?
Min streng som jeg skriver til filen skal gerne komme til at se nogenlunde således ud:
DECLARE @t varchar(100); DECLARE @phoneTo varchar(20); DECLARE @phoneText varchar(20); DECLARE @enter varchar(10); DECLARE @ctrlz varchar(10); SET @phoneTo = 'mit tlf nummer'; SET @phoneText = 'en eller anden tekst'; SET @enter = '13'; SET @ctrlz = "ctrl+z";
set @t = 'AT+CMSS=1'+ @enter + @phoneTo+ @enter+@phoneText+@ctrlz;
Jeg bruger så @t som parameter til en stored procedure til at skrive til en fil, og det virker fint nok.
(Husk dog at enable xp_cmdshell via sp_configure i SQL 2005 og 2008).
Og i 2005 og 2008 kan du lave en simpel CLR til at skrive filen til dig; sample kode er
Public Shared Function file_write( _ ByVal textdata As SqlString, _ ByVal filename As SqlString) As SqlInt32 'Optional ByVal errmsg As String = "") Dim wtr As StreamWriter Dim res As Boolean Try wtr = New StreamWriter(filename) wtr.Write(CStr("" + textdata)) wtr.Close() res = True Catch ex As Exception res = False End Try Return res End Function
Som du så stopper ind i en clr (husk at sætte databasen trustworthy og - sandsynligvis - load assembliet som unsafe). Kan anbefale at du skriver din clr i Visual Studio 2008 express der er gratis.
tak for input, jeg får nu skrevet de rigtige tegn til filen, men løsningen virker stadig ikke. Ved ikke om jeg bare skal lukke dette spørgsmål og stille resten af mine spørgsmål i andre kategorier. Kort fortalt så kan jeg inde i hyperterminal fyre følgende kommandoer af:
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.