Странные символы в строке при импорте файла sql через VBA - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь импортировать файл SQL в Excel через VBA, чтобы вернуть код SQL в виде одной строки, однако я получаю крошечные квадраты (возврат каретки?) Между каждым символом, когда я импортирую SQL в виде строки - Понятия не имею почему! Раньше он работал в других файлах, с другим SQL, поэтому я не уверен, что сделал неправильно.

Function ImportSQLText(FileExt, FileSQLName)
'//Needs Microsoft Scripting Runtime Ref
'//and microsoft active x data objects 2.8

Dim ReadText As String, newLine As String
Dim fso As FileSystemObject: Set fso = New FileSystemObject

Set txtStream = fso.OpenTextFile(FileExt & fileName, ForReading, False)

ReadText = " "
Do While Not txtStream.AtEndOfStream
    newLine = txtStream.ReadLine
    If InStr(newLine, "[input-sDte]") > 0 Then

        ReadText = ReadText & Replace(newLine, "[input-sDte]", sDte) & vbCrLf
    ElseIf InStr(newLine, "[input-eDte]") > 0 Then
        ReadText = ReadText & Replace(newLine, "[input-eDte]", eDte) & vbCrLf
    Else
         ReadText = ReadText & newLine & vbCrLf
    End If

Loop
txtStream.Close

ImportSQLText = ReadText

End Function

Код SQL выглядит так:

    ;if object_id('tempdb.#usr_fld') is not null

    drop table #usr_fld

    -- Creating Temp Table
    CREATE TABLE #usr_fld([PLACE-REF] NVARCHAR(50)
    ,[PROJCODE] nvarchar(100)
    ,[CUORACLE] nvarchar(100)); 

Любая информация будет принята с благодарностью - поиск в Google на этот раз мне не поможет.

1 Ответ

0 голосов
/ 08 мая 2018

У вас почти наверняка есть файл Unicode. Существует необязательный четвертый параметр в методе OpenTextfile для FSO:

 Const TriStateTrue = -1
 Set txtStream = fso.OpenTextFile(FileExt & fileName, ForReading, False, TriStateTrue)

Просто поменяйте строку для этих двух, и это может решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...