Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA вывод данных из recordset?? / 8 сообщений из 8, страница 1 из 1
23.09.2019, 17:18
    #39865798
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA вывод данных из recordset??
Всем привет, на MSSQL сервере есть хранимка, которая считает хэш записи. Собственно я используя эту хранимку из макроса хочу заполнить соседнюю колонку результатами запроса. Написал следующую функцию:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Function GetHash(ByVal txt$) As Variant
    Set objConn = CreateObject("ADODB.Connection")
    ConnectString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Tasks;Data Source=ab-v-cpdb12"
    objConn.ConnectionString = ConnectString
    objConn.ConnectionTimeout = 15
    objConn.CommandTimeout = 30
    objConn.Open
    Set objRecordset = objConn.Execute("SELECT dbo.GetHash('" + txt$ + "')")
    Do While Not objRecordset.EOF
        GetHash = vbTab & objRecordset(0)
        objRecordset.MoveNext
    Loop
    objConn.Close
    Set objConn = Nothing
    Set objRecordset = Nothing
End Function



В результате получаю данные в таком виде (см. вложение)
Хотя результат должен быть в таком виде: 0x35396716D89A19BDD3CD08179DAC9D83
...
Рейтинг: 0 / 0
23.09.2019, 17:23
    #39865799
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA вывод данных из recordset??
Не влезет в ячейку экселя такое число, вставляй как текст
...
Рейтинг: 0 / 0
23.09.2019, 17:30
    #39865801
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA вывод данных из recordset??
Shocker.Pro,не понял, как из макроса при вставке указать, что это текст?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub FacebookProfileLoader()
Dim rowCount As Long
rowCount = Range("A1").End(xlDown).Row
MsgBox rowCount
For i = 1 To rowCount
 curentValues = Cells(i, 1)
 Cells(i, 2) = GetHash(curentValues)
Next i
End Sub
...
Рейтинг: 0 / 0
23.09.2019, 18:20
    #39865831
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA вывод данных из recordset??
Начнем с того - какой тип возвращает dbo.GetHash?
...
Рейтинг: 0 / 0
24.09.2019, 10:15
    #39866097
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA вывод данных из recordset??
А чего CopyFromRecordset не используете ?
...
Рейтинг: 0 / 0
24.09.2019, 10:26
    #39866104
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA вывод данных из recordset??
Код: sql
1.
2.
declare @b binary(16) = 0x35396716D89A19BDD3CD08179DAC9D83;
select convert(varchar(max), @b, 1)  as stringHex



Код: vbnet
1.
Set objRecordset = objConn.Execute("SELECT  convert(varchar(max), dbo.GetHash('" + txt$ + "'), 1) as hexString")
...
Рейтинг: 0 / 0
24.09.2019, 10:27
    #39866107
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA вывод данных из recordset??
Shocker.ProНачнем с того - какой тип возвращает dbo.GetHash?
DECLARE @Result [binary](16) - Это в MSSQL
big-dukeА чего CopyFromRecordset не используете ?
Первый раз работаю с макросами, поэтому возможности VBA совершенно не знаю. Так сказать импровизирую. Попросили придумать инструмент для выгрузке данных из Excel в MSSQL для пользователя. Вот и решил рассмотреть вариант с макросом, макрос должен преобразовать данные, сравнить с имеющимися и недостающие загрузить в базу.
...
Рейтинг: 0 / 0
24.09.2019, 10:31
    #39866114
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA вывод данных из recordset??
Konst_One
Код: sql
1.
2.
declare @b binary(16) = 0x35396716D89A19BDD3CD08179DAC9D83;
select convert(varchar(max), @b, 1)  as stringHex



Код: vbnet
1.
Set objRecordset = objConn.Execute("SELECT  convert(varchar(max), dbo.GetHash('" + txt$ + "'), 1) as hexString")



Собственно, больше ничего и не нужно) Спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA вывод данных из recordset?? / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]