diff --git a/src/addins/postgres/dependencies.log b/src/addins/postgres/dependencies.log index 63facb7238..70e6ddc350 100644 --- a/src/addins/postgres/dependencies.log +++ b/src/addins/postgres/dependencies.log @@ -1,12 +1,12 @@ "MAIN ---" - linux-vdso.so.1 (0x00007ffd7fb79000) - libssl.so.3 => /lib64/libssl.so.3 (0x0000740872000000) - libcrypto.so.3 => /lib64/libcrypto.so.3 (0x0000740871800000) - libpthread.so.0 => /lib64/libpthread.so.0 (0x0000740871400000) - libc.so.6 => /lib64/libc.so.6 (0x0000740871000000) - libdl.so.2 => /lib64/libdl.so.2 (0x0000740870c00000) - /lib64/ld-linux-x86-64.so.2 (0x0000740872600000) - libz.so.1 => /lib64/libz.so.1 (0x0000740870800000) + linux-vdso.so.1 (0x00007ffeea6d2000) + libssl.so.3 => /lib64/libssl.so.3 (0x00007c2606a00000) + libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007c2606200000) + libpthread.so.0 => /lib64/libpthread.so.0 (0x00007c2605e00000) + libc.so.6 => /lib64/libc.so.6 (0x00007c2605a00000) + libdl.so.2 => /lib64/libdl.so.2 (0x00007c2605600000) + /lib64/ld-linux-x86-64.so.2 (0x00007c2607000000) + libz.so.1 => /lib64/libz.so.1 (0x00007c2605200000) GLIBC_2.2.5 GLIBC_2.12 GLIBC_2.3 diff --git a/src/addins/postgres/src/component/methods.rs b/src/addins/postgres/src/component/methods.rs index 733e59b3e8..531ec0fc6c 100644 --- a/src/addins/postgres/src/component/methods.rs +++ b/src/addins/postgres/src/component/methods.rs @@ -13,7 +13,7 @@ pub fn execute_query( query: String, params_json: String, force_result: bool, -) -> String { +) -> Vec { let client_arc = match add_in.get_connection() { Some(c) => c, @@ -41,13 +41,13 @@ pub fn execute_query( if query.trim_start().to_uppercase().starts_with("SELECT") || force_result { match client.query(&query, ¶ms_unboxed) { Ok(rows) => { - rows_to_json(rows) + rows_to_json(rows).into_bytes() } Err(e) => format_json_error(&e.to_string()), } } else { match client.execute(&query, ¶ms_unboxed.as_slice()) { - Ok(_) => json!({"result": true}).to_string(), + Ok(_) => json!({"result": true}).to_string().into_bytes(), Err(e) => format_json_error(&e.to_string()), } } @@ -326,12 +326,12 @@ fn process_sql_value(column_name: &str, column_type: &str, row: &postgres::Row) Ok(value) } -fn format_json_error(error: &str) -> String { +fn format_json_error(error: &str) -> Vec { json!({ "result": false, "error": error }) - .to_string() + .to_string().into_bytes() } fn parse_date(input: &str) -> Result { diff --git a/src/addins/postgres/src/component/mod.rs b/src/addins/postgres/src/component/mod.rs index 8e9ec1955a..0a787b63d2 100644 --- a/src/addins/postgres/src/component/mod.rs +++ b/src/addins/postgres/src/component/mod.rs @@ -41,8 +41,8 @@ pub fn cal_func(obj: &mut AddIn, num: usize, params: &mut [Variant]) -> Box Box::new(obj.close_connection()), 2 => { - let query = params[0].get_string().unwrap_or("".to_string()); - let params_json = params[1].get_string().unwrap_or("".to_string()); + let query = String::from_utf8_lossy(params[0].get_blob().unwrap_or(&[])).to_string(); + let params_json = String::from_utf8_lossy(params[1].get_blob().unwrap_or(&[])).to_string(); let force_result = params[2].get_bool().unwrap_or(false); Box::new(methods::execute_query(obj, query, params_json, force_result)) diff --git a/src/en/OInt/addins/OPI_PostgreSQL.zip b/src/en/OInt/addins/OPI_PostgreSQL.zip index aaa006f533..4779f748e3 100644 Binary files a/src/en/OInt/addins/OPI_PostgreSQL.zip and b/src/en/OInt/addins/OPI_PostgreSQL.zip differ diff --git a/src/en/OPI/src/CommonTemplates/OPI_PostgreSQL/Template.addin b/src/en/OPI/src/CommonTemplates/OPI_PostgreSQL/Template.addin index aaa006f533..4779f748e3 100644 Binary files a/src/en/OPI/src/CommonTemplates/OPI_PostgreSQL/Template.addin and b/src/en/OPI/src/CommonTemplates/OPI_PostgreSQL/Template.addin differ diff --git a/src/ru/OInt/addins/OPI_PostgreSQL.zip b/src/ru/OInt/addins/OPI_PostgreSQL.zip index aaa006f533..4779f748e3 100644 Binary files a/src/ru/OInt/addins/OPI_PostgreSQL.zip and b/src/ru/OInt/addins/OPI_PostgreSQL.zip differ diff --git a/src/ru/OPI/src/CommonModules/OPI_PostgreSQL/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_PostgreSQL/Module.bsl index 92195404ff..3c61b54f81 100644 --- a/src/ru/OPI/src/CommonModules/OPI_PostgreSQL/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_PostgreSQL/Module.bsl @@ -148,7 +148,10 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина); OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат); - Параметры_ = ОбработатьПараметры(Параметры); + Параметры_ = ОбработатьПараметры(Параметры); + + ТекстЗапроса = ПолучитьДвоичныеДанныеИзСтроки(ТекстЗапроса); + Параметры_ = ПолучитьДвоичныеДанныеИзСтроки(Параметры_); Если ЭтоКоннектор(Соединение) Тогда ЗакрыватьСоединение = Ложь; @@ -163,6 +166,7 @@ КонецЕсли; Результат = Коннектор.Execute(ТекстЗапроса, Параметры_, ФорсироватьРезультат); + Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат); Если ЗакрыватьСоединение Тогда ЗакрытьСоединение(Коннектор); diff --git a/src/ru/OPI/src/CommonTemplates/OPI_PostgreSQL/Template.addin b/src/ru/OPI/src/CommonTemplates/OPI_PostgreSQL/Template.addin index aaa006f533..4779f748e3 100644 Binary files a/src/ru/OPI/src/CommonTemplates/OPI_PostgreSQL/Template.addin and b/src/ru/OPI/src/CommonTemplates/OPI_PostgreSQL/Template.addin differ