Имя: Пароль:
1C
1С v8
Параметры ADODB.Command
,
0 Kondarat
 
01.03.24
15:41
Есть некая база SQL. В ней хранимая процедура, которая возвращает в параметре (тип varchar(max)) строку неизвестной длины. Как при добавлении параметра указать, что мне надо получить строку именно неизвестной длины?
Гуглосправка по ADODB говорит, что в случае указания 2-м параметром тип строковой, надо указать размер строки. Но мне он заранее не известен.

		Command = Новый COMОбъект("ADODB.Command");
		Command.ActiveConnection=Connection;
		Command.CommandText = "GetMsg";
		Command.CommandType = 4;
		Command.Parameters.Append (Command.CreateParameter("@N",3,1,4));	   
		Command.Parameters.Append (Command.CreateParameter("@msg",130,3,???)); <-- от тут
		Command.Parameters(0).value = 2;
		Command.Prepared = true;
		Command.Execute();
1 youalex
 
02.03.24
00:01
попробуй
2147483647 (макс. long int)
или -1
2 NorthWind
 
02.03.24
14:24
Скорее всего там будет BLOB/Memo. Другой вопрос, что я никогда не получал такие вещи в качестве параметров и не знаю, как это будет работать.
3 Kondarat
 
04.03.24
09:19
(1) C -1 ADDB посылает далеко и надолго. Максимальное значение попробую.
4 Kondarat
 
04.03.24
09:20
(2) Там xml строки для загрузки в целевую базу.
5 Волшебник
 
04.03.24
09:29
(4) Сразу чувствуется рука опытного архитектора... Поставьте 2 Гб из (1), Вам хватит на первое время
6 yopQua
 
04.03.24
09:33
неограниченные строки/блоб и остальное Биг - проблема, будет обрезать где то в начале первой тысячи символов. или это sqlite был.. как раз с xml данными, ага. но выход какой то был, кривой и косой, но был
7 NorthWind
 
04.03.24
20:58
(6) подозреваю, что выход написать обертку на другом языке, например на VBS, которая через ADO Stream выльет это в файл. И файл из 1С прочесть.
8 Garykom
 
гуру
04.03.24
21:18
(7) Не понимаю зачем VBS
Когда есть Golang, где все простейше и кроссплатформенно
[ODBC SQL Server Driver][DBNETLIB]Недопустимое соединение.
там см 12
9 NorthWind
 
04.03.24
21:43
(8) ну я ж не настаиваю, что на vbs. На чем хочет, на том пусть и пишет, главное чтобы можно было чет с кусками данных в памяти делать, а не как у 1С :)
10 yopQua
 
05.03.24
00:29
(9) да, например таже история Recordset SQLite