QT+freeTDS+MSSQL 2005 |
Здравствуйте, гость ( Вход | Регистрация )
QT+freeTDS+MSSQL 2005 |
yTo4ko |
15.4.2009, 16:45
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 15.4.2009 Пользователь №: 683 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте. Начал изучать C++ и QT, чтобы написать кроссплатформенное приложение Всё было отлично, пока не решил вывести данные из таблицы БД в QTableView.
Вот код:
функция createConnection объявлена в connection.h
В Windows всё отлично работает, в QTableView выводятся все данные. В Linux - выводится первый столбец - id (тип int), остальные 2 столбца делал и varchar, и nvarchar ... ничего не помогает - просто пустоту выводит И сыпяться вот такие сообщения:
Если я всё правильно понимаю - проблема в unixODBC+FreeTDS ... Но вот как побороть У кого какие предложения имеются? Может кто просто поделится опытом работы на C++ в Linux с связке с MSSQL... Буду рад услышать любые советы по этому поводу И ещё - я так понял как таковую UTF-8 кодировку MSSQL не поддерживает - это так? PS если в коде что то не так (как вам кажется) - сообщите)) Я только пару дней назад начал более-менее писать на C++ и QT - ошибок может быть море ... |
|
|
Litkevich Yuriy |
15.4.2009, 17:09
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
глянь программу clienteODBC, она изначально задумана как кросплатформенный клиент для работы с Мелкосовтовской СУБД и насколько я знаю работает и под линём.
вот страничка документации вот страничка посвещенная настройкам TDS odbc_linux_en.zip ( 2.25 килобайт ) Кол-во скачиваний: 288 (зазипованый html) db.setDatabaseName("DRIVER={SQL Native Client};Server=192.168.1.19;Database=test;Trusted_Connection=no"); я вообще так не делал в виндовозе. Просто имя источника данных указываешь и всё
|
|
|
yTo4ko |
15.4.2009, 17:11
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 15.4.2009 Пользователь №: 683 Спасибо сказали: 0 раз(а) Репутация: 0 |
ммм ... ну имя источника указываешь - если источник создан верно? а я без создания источника подключаюсь ... но смысл не в этом ) коннект проходит отлично. Ща посмотрим эту прогу ...
|
|
|
Litkevich Yuriy |
15.4.2009, 17:21
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
yTo4ko |
15.4.2009, 18:50
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 15.4.2009 Пользователь №: 683 Спасибо сказали: 0 раз(а) Репутация: 0 |
Litkevich Yuriy, за программу конечн спасибо, но точно такие же симптомы не показывает текстовые поля ... или FreeTDS или unixODBC ... но интересно другое - isql и tsql работают отлично ... неужто QODBC драйвер косячит?
|
|
|
ViGOur |
15.4.2009, 19:17
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
А если попробовать поиграть с кодировкой получаемых от MSSQL данных?
Просто то, что ты описал мне напоминает ситуацию, когда UTF-8 данные записывают в поля предназныченные для windows-1251. p.s. еще думаю полезно будет почитать и Advanced Configurations FreeTDS И глянь логи MSSQL, там по идее должны быть какие-нибудь записи по этому поводу... |
|
|
LE0N |
15.4.2009, 21:04
Сообщение
#7
|
Студент Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: 0 |
Кроссплатформенное программирование и ODBC это вещи трудно-совместимые.
|
|
|
Theli |
20.5.2009, 15:05
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 20.5.2009 Пользователь №: 762 Спасибо сказали: 0 раз(а) Репутация: 0 |
C M$SQL из Linux работаю через QTDS вместо QODBC. Работает на УРА
для использования QTDS нужно иметь установленные пакеты FreeTDS и собрать QT c флагом -plugin-sql-tds -qt-sql-tds ... QTDS в Windows работать не будет! |
|
|
Текстовая версия | Сейчас: 19.4.2024, 20:08 |