Проблема с представлением из сторонней базы данных

Автор meat_12237, 13 июля 2025, 11:39

0 Пользователи и 1 гость просматривают эту тему.

sokol92

Попробовал выбор данные в Calc.
Даже такой sqlQuery выбирает число 0 вместо текстовой константы.

Sub TestSQLite()
  Dim fileURL As String, sqlQuery As String
  Dim oDoc As Object, oRange As Object
  Dim props(3) As New com.sun.star.beans.PropertyValue
 
  fileURL=ConvertToURL("C:\Temp\БД.odb")
  sqlQuery="Select 'A' Test from ""Журнал"""
 
  oDoc = StarDesktop.LoadComponentFromUrl("private:factory/scalc", "_blank", 0, Array())
 
  props(0).Name="DatabaseName" : props(0).Value=FileURL
  props(1).Name="SourceType"   : props(1).Value=1
  props(2).Name="SourceObject" : props(2).Value=sqlQuery
  props(3).Name="IsNative"     : props(3).Value=True
   
  oRange=oDoc.Sheets(0).GetCellRangeByName("A1")
  oRange.doImport props
End Sub
Владимир.

sokol92

Похоже, для таблиц имена полей типа TEXT обрабатываются нормально, любые иные выражения текстового типа - нет.
Это работает:
sqlQuery="Select ""Запись_Журнал"" Test from ""Журнал"""
Это нет:
sqlQuery="Select ""Запись_Журнал"" || '' Test from ""Журнал"""
Владимир.

kompilainenn

Емнип, внутри SQLite всё текст, это не может влиять?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

sokol92

Владимир.

sokol92

#19
Цитата: kompilainenn от 14 июля 2025, 17:40Емнип, внутри SQLite всё текст, это не может влиять?
Мы, к сожалению, не работаем с этой базой (и с компонентой Base).

Кстати, разработчики SQLite давно предлагали (и предлагают) использовать свой формат файлов для офисных приложений.
Владимир.