Как стать автором
Обновить

Обрезка ответа на sql-запрос

Чулан
UPDATE!

Проблема решена после внимательного изучения документации по формату idc. Длина колонки в нем по умолчанию равна 8192 байта, а все что меньше просто обрезается. Прямо так и написано. Для вывода информации свыше этого есть специальный ключ MaxFieldSize, значением которого является максимальная длина ответа в байтах. Приведу цитату, может кому пригодится:
The MaxFieldSize field specifies the maximum number of bytes allocated by the IDC for each field in the .idc file.
--------------------------------------------------------------------------------
NOTE: The default field size is 8,192 bytes. If a query results in more bytes than allocated by the IDC MaxFieldSize field, subsequent data is truncated.
--------------------------------------------------------------------------------
To specify a MaxFieldSize of 64,000 bytes, use the following syntax in the MaxFieldSize field entry:
MaxFieldSize: 64000


UPDATE!

Дорогой Хабрахабр, я пришел спросить твоего совета. Перерыл все что только можно и не могу найти решения.
Имеет место следующая проблема:
На MS SQL 2000 сервере есть база данных, в которой есть таблица, в которой есть столбец типа text. В нем хранятся данные (новости), которые надо постоянно показывать. Пользователь вызывает скрипт, которой обрабатывает IIS.
Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Просмотры 1K
Комментарии 36

Работа с SSL/TLS в СУБД Caché

Блог компании InterSystems Информационная безопасность *Разработка веб-сайтов *
В данной статье будут рассмотрены лишь некоторые примеры установки безопасного соединения c СУБД Caché на основе SSL, а именно:

Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 4.2K
Комментарии 0

UCS2 или UCS4? — pyodbc и работа с utf16 данными в MSSQL

Python *
Из песочницы

Проблема


Для работы с базой данных MSSQL Server 2005 в кодировке UTF-16(UCS2) я использую скрипт, написанный на python. Этот скрипт использует для работы с базой данных следующий набор инструментов:
  • unixODBC
  • FreeTDS
  • pyodbc
  • sqlachemy

И тут появилась трудность: при получении строковых данных из базы (поля nvarchar, ntext) неправильно обрабатывается юникод.
Как выяснилось, установленный у меня питон был собран с UCS4 юникодом. Методы получения типа юникода в сборке python хорошо описаны в данном вопросе на stackoverflow. Т.е, если выполнить следующую строчку в терминале:
python -c "import sys;print 'UCS4' if sys.maxunicode > 65536 else 'UCS2'"
то мы получаем версию сборки юникода для python.В моем случае это было UCS4. Что это за собой тянет:
  1. unixODBC вызывая соответствующие функции работы с базой данных с аппендиксом W (например, SQLExecDirectW()), получает результаты. в которых один символ текста занимает 2 байта(UCS2)
  2. pyodbc получает результаты от ODBC-драйвера, и в свою очередь сохраняет результаты в переменную с типом unicode
  3. Таким образом 1 символ результата, по мнению pyodbc, составляет 4 байта(UCS4). Именно так и сохраняется результат. полученный из ODBC-драйвера.

Драйвер возвращает данные, в которых символ занимает 2 байта, а pyodbc переделывает эти данные так, что символ занимает 4 байта. Все бы хорошо, если бы было какое-либо преобразование, но данные просто сохраняются как массив байтов в переменную с типом unicode, что несет неприятные последствия: символ результата по-сути содержит 2 символа того результата, который вернул ODBC-драйвер.
Читать дальше →
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 1K
Комментарии 0

Знакомство с "Caché SQL Gateway" для создания федеративных систем или мультибаз

Блог компании InterSystems Разработка веб-сайтов *SQL *
В сложных комплексных системах часто встаёт вопрос интеграции данных из разных источников.
Такие системы получили название интегрированных, федеративных или мультибаз.

В СУБД Caché такая интеграция осуществляется с помощью специального шлюза (Caché SQL Gateway), который использует в своей основе ODBC/JDBC соединения к внешним источникам данных. Причём под источником в данном случае можно понимать не только СУБД, так как есть JDBC/ODBC драйвера для MS Excel, DBF, текстовых файлов, графических файлов, WMI и т.д.
Читать дальше →
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 4.4K
Комментарии 0

Клиент Caché ODBC в Linux

Блог компании InterSystems
Туториал
Несколько лет назад заказчик, крупный медицинский центр федерального значения, поручил нам разработать софт, обслуживающий информационные киоски. Внешне киоск напоминает платёжный терминал (только без купюроприёмника), его основная функция, как следует из названия, — предоставление пациентам различной информации, такой как расписание приёма врачей, услуги и их стоимость, и так далее.
По понятным причинам для киоска потребовалось разработать упрощённый интерфейс пользователя, который было решено реализовать как web-приложение. Имея в штате опытных web-программистов, уверенно владеющих php, решили (для скорости) поручить им его написание, организовав связь с базой данных нашей медицинской системы. Рассматривалось 3 варианта взаимодействия:
  • ODBC
  • JDBC
  • web-сервисы.
Web-программисты предпочли ODBC как наиболее простой с их точки зрения вариант, и альфа-версия киоска довольно быстро увидела свет. Однако вскоре выяснилось (surprise!), что php-код должен работать не под Windows, как это было у разработчика, а под Linux, несмотря на то, что в те годы наша медицинская система эксплуатировалась заказчиком на платформе Windows 2008. Чтобы «подружить» всех членов триады (Linux – ODBC-драйвер Caché — php5) потребовались определённые усилия. Последовательность проделанных действий я зафиксировал в виде наброска к данной статье, которую и предлагаю вашему вниманию.
Читать дальше →
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 5.8K
Комментарии 17

SQL-доступ к NoSQL-данным: реализация SQL-процедуры в Caché с динамическим определением возвращаемых метаданных

Блог компании InterSystems SQL *NoSQL *
Как известно, Caché можно использовать как реляционную СУБД, в том числе через JDBC/ODBC драйверы, с возможностью исполнения произвольных SQL-запросов и вызова SQL-процедур.
Известно также, что все данные в Caché хранятся в многомерных разреженных массивах — глобалах. Это позволяет в случае недостаточной производительности отдельно взятой SQL-процедуры не использовать стандартный CachéSQL-движок, а переписать ее код исполнения на языке серверной бизнес-логики Caché ObjectScript (COS), в котором можно реализовать оптимальный алгоритм выполнения SQL-процедуры, часто используя более оптимальные NoSQL-структуры данных (глобалы).
Однако в стандартной библиотеке классов Caché существует одно ограничение: для SQL-процедур, в которых отбор выполняется самописным COS-кодом, необходимо определять набор возвращаемых полей на этапе компиляции — т.е. нет возможности динамически задать метаданные для SQL-процедуры, работающей с NoSQL структурами.

О том, как снять это ограничение, рассказано под катом.
Читать дальше →
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 5.3K
Комментарии 5

Мониторинг базы данных Oracle через ODBC в Zabbix

Настройка Linux *Системное администрирование *Серверное администрирование *
image
В статье будет рассмотрена возможность мониторинга база данных по средствам встроенной в Zabbix поддержке ODBC, c использованием автообнаружения объектов.
Подробности
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 49K
Комментарии 7

Как легко и просто научить ваш Asterisk звонить через нужного оператора

Asterisk *Разработка систем связи *
Из песочницы
Приветствую тебя, %username%!

Сегодня мне хотелось бы поделиться решением, позволяющим научить ваш Asterisk автоматически маршрутизировать звонки по соответствующим направлениям, не прибегая к громоздким регулярным выражениям.

image

Практика показывает, что все больше и больше компаний начинают задумываться о своих расходах на связь. Львиную часть расходов при этом составляют вызовы на мобильные номера. Отсюда и родилась задача обрабатывать исходящие вызовы и направлять через ту линию, где звонок будет совершен бесплатно или за наименьшую стоимость.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 32K
Комментарии 9

Как я Asterisk'ом шлагбаумы открывал

Asterisk *Разработка систем связи *
image

Добрый день, жители хабра.

Хочу поделиться интересным, на мой взгляд, вариантом использования Asterisk.

Предисловие: у клиента имеются две парковки, въезд на которые регулируется шлагбаумами с gsm-модулями. То есть владелец парковочного места набирает номер сим-карты, установленной в модуле и въезжает на территорию. Но, как известно, если номер знает один — его знают все, поэтому платная парковка хаотично превращается в бесплатную. Особенность gsm-модуля заключается в том, что звонок проходит без поднятия трубки, соответственно оператор связи не может предоставить детализацию звонков по номеру.

Вот с такими исходными данными мне предстояло работать, что из этого вышло — под катом.

Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 45K
Комментарии 24

Как настроить в IP АТС синхронизацию каталогов – поиск по ODBC

Блог компании 3CX Ltd. Asterisk *
Туториал
Recovery mode
Расширение ODBC позволяет подключить 3CX Phone System к источнику данных, который поддерживают ODBC-драйвер. Таким образом, любая база данных, поддерживающая ERP или CRM, может импортировать контактные данные из общей базы данных при получении входящего вызова.



Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 3.6K
Комментарии 1

Как работать с MS Access в Linux

Ruby *PostgreSQL *Ruby on Rails *Microsoft Access *Разработка под Linux *
Перевод
Многие пользуются Аксесом… даже в продакшене… даже по сей день. Посему, случаются моменты, когда кому-то захочется подключиться к этой БД из какого-нибудь неожиданного места. Например с юниксового сервера. Конечно же, подключиться захочется не просто так, а для использования данных из Аксеса в веб-приложении. И, без всякого сомнения, появится желание использовать эти данные совместно с информацией из других, более современных БД.

Итак, я хочу описать несколько подходов к общению с существом, называемым MS Access. Посему, исходная задача такова: установить соединение с MS Access из Ruby on Rails приложения или из PostgreSQL (используя FDW) и получить доступ к данным, желательно, в реальном времени.

Ниже я постараюсь собрать всю информацию, относящуюся к вышеописанно задаче и попытаюсь описать нетривиальные случа и подводные табуретки. Надеюсь, это описание сэкономит время кому-нибудь… либо просто, в некоторой степени, позабавит уважаемую публику.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 34K
Комментарии 18

ODBC Firebird Postgresql, выполнение запросов в Powershell

PowerShell *
Иногда у системных инженеров возникает необходимость получить определенный набор данных непосредственно из самой СУБД средствами Powershell. В данной статье хочу продемонстрировать два метода работы c firebird, postgresql через odbc драйвер и клиентскую библиотеку.

Начнем с firebird и работу с базой через ODBC драйвер, для начала нужно зарегистрировать в системе клиентскую библиотеку GDS32.DLL, ее разрядность должна быть такой же как и ODBC драйвера который должен быть установлен далее, скачать можно на сайте производителя, обязательно во время установки необходимо поставить галочку о регистрации библиотеки.

image

Далее устанавливаем сам ODBC, который также берем на сайте производителя, не забываем что его разрядность должна соответствовать разрядности ранее установленного клиента. Теперь собственно сам powershell скрипт, за его основу был взят пример на C# для postgresql.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 9.9K
Комментарии 5

Установка MS SQL ODBC Driver под Linux и сборка плагина для Qt 5.9

C++ *Qt *Microsoft SQL Server *Разработка под Linux *
Туториал
image

Несколько дней назад встал вопрос о написании консольного приложения, которое будет работать в Linux CentOS 7 и взаимодействовать с MS SQL Server 2012. Мне очень нравится Qt и я решил, что воспользуюсь им для решения этой задачи. И если под Windows я достаточно быстро настроил необходимое окружение, то под Linux я столкнулся с проблемами, которые очень тяжело было решить с помощью гуглинга. Этому вопросу я посвятил полтора дня. Считаю полезным поделиться своим опытом, возможно кому-то это поможет сэкономить драгоценное время.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 17K
Комментарии 2

Splunk + Excel. Что получится?

Блог компании TS Solution Системное администрирование *Клиентская оптимизация *IT-инфраструктура *Big Data *
Туториал
В предыдущих статьях мы много рассказывали о Splunk. Это продукт, который позволяет собирать и анализировать данные с любых IT-систем в режиме реального времени, например, это могут быть результаты работы web-сервера, почтового сервера, Windows, различных приложений и тд. Значит ли это, что если всем сотрудникам, заинтересованным в аналитике, полученной в Splunk, необходимо разбираться в работе программы, вносить изменения в свои бизнес-процессы и делать всю аналитику только в Splunk? Конечно же, нет!



В данной статье мы покажем, как сделать так, чтобы в несколько кликов отдел продаж мог получать в MS Excel таблицу, с актуальными данными о реализации товара через интернет магазин.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 5.5K
Комментарии 2

Взаимодействие R с базами данных на примере Microsoft SQL Server и других СУБД

MySQL *SQL *Microsoft SQL Server *Администрирование баз данных *R *
Туториал

Поскольку львиная доля бизнес информации храниться в базах данных. На каком бы языке программирования вы не писали, вам придётся производить различные действия с ними.


В этой статье я расскажу о двух интерфейса для работы с базами данных в R. Большая часть примеров демонстрируют работу с Microsoft SQL Server, тем не менее все примеры кода будут работать и с другими базами данных, такими как: MySQL, PostgreSQL, SQLite, ClickHouse, Google BigQuery и др.


image

Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 15K
Комментарии 7

in2sql: Работаем с разнообразием ODBC источников

SQL *Visual Basic for Applications *
Продолжаю серию рассказов о OpenSource разработке In2sql, которая визуализирует объекты SQL для выгрузки данных в Excel (по сути это серия статей — документация к разработке).

В предыдущих частях:


В данной части поговорим о том, как создается список объектов, которые выводятся в навигационное дерево.

image
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2K
Комментарии 1

Администрирование Informatica PowerCenter в деталях, часть первая

Блог компании Альфа-Банк Big Data *Хранение данных *Хранилища данных *Data Engineering *

Посвящается моему коллеге и наставнику по Informatica Максиму Генцелю, который умер от COVID-19 21.01.2021

Привет! Меня зовут Баранов Владимир, и я уже несколько лет администрирую Informatica в «Альфа-Банк». В статье я поделюсь опытом работы с Informatica PowerCenter. IPC это платформа, которая занимается ETL (Extract, Transformation, Loading). Я сосредоточусь на описании конкретных кейсов и решений, расскажу о некоторых тонкостях и постараюсь дать пищу для ума.

В работе приходится часто сталкиваться с проблемами производительности и стабильности платформы, при этом глубоко во всё вникая, поэтому лично я при работе с Informatica получаю огромное удовольствие. Во-первых, потому, что даже IPC сам по себе не такой уж маленький, а у Informatica целое семейство продуктов. Во-вторых, ETL находится на стыке разных систем, надо знать всего понемногу – базы данных, коннекторы, линукс, скриптовые языки и системы визуализации и мониторинга. В-третьих, это общение с большим количеством разных людей и много интересных задач.

Запуск клиента информатики


Забавно, но даже тут можно наступить на некоторые грабли. Да, прямо на старте и с размахом.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 9K
Комментарии 4

Как подружить ClickHouse и Power Bi

Визуализация данных *Хранилища данных *
Из песочницы

Однажды на работе мне потребовалось построить дашборд в Power BI, но данные хранились в ClickHouse. В Power BI есть много различных конекторов, но специального для ClickHouse нет. В этой статье мы разберемся с данной проблемой!

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 7.6K
Комментарии 3

Одним db.odbc.get запросом в базу реализовывается discovery метрик и разнесение данных по метрикам

Системное администрирование *Oracle *PostgreSQL *IT-инфраструктура *Регулярные выражения *

Получение несколько десятков параметров запросом в базы oracle, автоматическая разведка (discovery) метрик и наполнение их данными, и все за один запрос к базе

Читать далее
Рейтинг 0
Просмотры 1.4K
Комментарии 0

Как мы общебанковскую Informatica пилили

Big Data *Хранение данных *Хранилища данных *Data Engineering *

Однажды ребята позвали создать общебанковский контур ETL Informatica (Data Integration) и вот что из этого вышло.

Данный пост не является рекомендацией к действиям или последней инстанцией, тут описан подход который работает, возможно, что то можно улучшить (с).

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 1.5K
Комментарии 0