Galera. bom dia.
Estou realizando um levantamento de quantos e quais são os meus script SQL no banco de dados (Postgresql).
Logo eu estou tentando trazer do meu banco de dados, o script sql que tenho guardado.
Porém quando o script é meio longo, tipo 1200 linhas, o vba se perde e me traz apenas uma parte do script.
Exemplo:
Parte do Meu código
Sub Consulta_Dados()
Dim Tablename As String
Dim DataSource As Variant
Dim conNew As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim filtro As Integer
Dim contexto As Integer
Dim ws As Worksheet
Dim sql_orig As String
Dim iArq As Long
ReDim valores(4) As Variant
DataSource = odbc
Set conNew = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set ws = Worksheets(ActiveSheet.Name)
iArq = FreeFile
Open "C:tempArq_SQL.txt" For Output As iArq
For i = 1 To 4
valores(i) = ws.Range("A1").Offset(1, i).Value
Next i
'============================================================================================================================================================
Sql = " SELECT f.idfiltro, f.idcontexto, f.descricao, ql.expressao " _
& " FROM sis.filtro f INNER JOIN sis.ql ql USING (idql,idcontexto) WHERE ql.idql = " & valores(3) & " AND ql.idcontexto = " & valores(4)
'---------------------------------------------database connection--
conNew.Open DataSource
Set rs = conNew.Execute(Sql)
'---------------------------------------------Encerra a conection--
' dblin = rs.GetRows
Print #iArq, rs.Fields.Item(3).Value <==================== AQUI EU PEGO O CAMPO EXPRESSAO ONDE ESTÁ O SCRIPT SQL QUE ME INTERESSA
Close #iArq
conNew.Close
Set rs = Nothing
... continua fazendo outros procedimentos que não influenciam.
O Resultado (Este SQL tem 1163 linhas) trouxe apenas 303
Sendo que na última linha ele mostra " )) AS totalcust " <=============== Ele cortou a palavra e no espaço em branco, ele traz strings NUL e ACK.
https://ibb.co/6wWTZ0z
Alguém passou por isso?
Ou alguém tem uma dica de como posso transcrever o campo de script SQL direto para arquivo txt?
Muito obrigado.
Postado : 02/10/2019 8:38 am