Доступ к БД, работа с БД

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
User avatar
T-Rex
Moderator
Moderator
Posts: 1188
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Mon Nov 24, 2008 5:54 pm

Ухъ.. давно собиралось, может год тому назад. Там же ж вроде все протоколы через плагины работают? Щаз наверное не найду старых сорцов, так можно было бы более точно сказать.
Но в любом случае DatabaseLayer на данный момент наверное самая удобная штука.

User avatar
T-Rex
Moderator
Moderator
Posts: 1188
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Mon Nov 24, 2008 5:56 pm

Гы, порылся сейчас в архивах, это было не FreeTDS, а libDBI с TDS-плагином. Вот как оно бывает

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3799
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN » Mon Nov 24, 2008 6:26 pm

Da net, nikakih plaginov vrode net. Vse normalno rabotaet.

Kstati, moget poprobovat sobrat sejchas?

Ty javno pereputal s drugim prilogeniem... :)

SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Post by SmileGobo » Tue Nov 25, 2008 9:01 am

Я когда работал с MySQL юзал стандартную сишную либу, которая в поствке с MySQL - все прекрасно работало. В связи с этим вопрос: Почему бы просто не юзать какую-нибудь стронию либу ODBC наверняка такая есть (или нету?).
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3799
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN » Wed Nov 26, 2008 12:17 am

Privet,
S mySQL da, est tam 2 varianta - ispolzovat ODBC is mySQL - Connector, ili prjamoj interfejs k baze dannyh.
Pod M$$QL Server'om pod Windoj polzovatsja nado ODBC, pod *nix/Mac - FreeTDS.

FreeTDS ispolzuet 2 lejera - ODBC i TDS biblioteku. TDS eto protokol kotoryj ispolzovan v DB Sybase/M$, a FreeTDS - ego realizacija pod *nix/Mac. I rabotaet eta biblioteka poetomu tolko s serverami ot Sybase ili M$. U Oracle est svoi drajvera dlja dostupa iz Windows, *nix i Mac, u Informix - svoi.

Vot tak.

vtararin
Knows some wx things
Knows some wx things
Posts: 37
Joined: Thu May 24, 2007 4:43 pm
Location: Ukraine
Contact:

Post by vtararin » Thu Nov 27, 2008 7:42 am

По протоколам и API положение следующее:
MSSQLServer, Sybase SQLServer, Sybase SQLAnywhere - можно юзать через OpenTDS. Последний только в определенных конфигурациях.

Все остальные СУБД имеют собственный свой протокол и API, через который можно юзать все "фичи" СУБД.

Обычно все СУБД имеют ODBC драйвер, но через ODBC обычно нельзя пользовать все возможности СУБД и каждый имеет особенности реализации. Исключение только Sybase SQLAnywhere, там ODBC - родной протокол.

Это резюме по тому что юзал сам. Oracle(6,7,8), SQLAnywhere(4,5,6), SQLBase(5), MSSQLServer(2000, 2005), PostgreSQL(7,8)
cofounder of LogicLand Ltd.
my interest Kamenets-Podolskiy Online

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3799
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN » Sat Nov 29, 2008 6:19 am

vtararin,
А можно поинтересоваться - OpenTDS это протокол или его реализация?

Реализацией протокола TDS под *nix/Mac является пакет FreeTDS который распространяется на условиях GPL. А в остальном все правидьно.

Спасибо.

vtararin
Knows some wx things
Knows some wx things
Posts: 37
Joined: Thu May 24, 2007 4:43 pm
Location: Ukraine
Contact:

Post by vtararin » Sat Nov 29, 2008 3:17 pm

ONEEYEMAN wrote:А можно поинтересоваться - OpenTDS это протокол или его реализация?
Да FreeTDS конечно.
cofounder of LogicLand Ltd.
my interest Kamenets-Podolskiy Online

vtararin
Knows some wx things
Knows some wx things
Posts: 37
Joined: Thu May 24, 2007 4:43 pm
Location: Ukraine
Contact:

Post by vtararin » Sat Nov 29, 2008 5:14 pm

Еще одна лажа в ODBC реализации DatabaseLayer
Следующий код не работает

Code: Select all

            model::TipPrivoda d(rs->GetResultLong(_T("ID_TIP_PRIVODA")), 
                                rs->GetResultString(_T("TIP_PRIVODA")),
                                rs->GetResultString(_T("TIP_PRIVODA_NAME")),
                                rs->GetResultDouble(_T("POWER_KVT")),
                                rs->GetResultDouble(_T("OPEN_TORQUE")),
                                rs->GetResultDouble(_T("CLOSE_TORQUE")),
                                rs->GetResultString(_T("PICTURE_NUMBER")));
Доставать значения надо точно в соответствии с порядком столбцов в SQL запросе.

А вот этот работает

Code: Select all

            long     ID_TIP_PRIVODA   = rs->GetResultLong(_T("ID_TIP_PRIVODA")); 
            wxString TIP_PRIVODA      = rs->GetResultString(_T("TIP_PRIVODA"));
            wxString TIP_PRIVODA_NAME = rs->GetResultString(_T("TIP_PRIVODA_NAME"));
            double   POWER_KVT        = rs->GetResultDouble(_T("POWER_KVT"));
            double   OPEN_TORQUE      = rs->GetResultDouble(_T("OPEN_TORQUE"));
            double   CLOSE_TORQUE     = rs->GetResultDouble(_T("CLOSE_TORQUE"));
            wxString PICTURE_NUMBER   = rs->GetResultString(_T("PICTURE_NUMBER"));

            model::TipPrivoda d(ID_TIP_PRIVODA,
                TIP_PRIVODA,
                TIP_PRIVODA_NAME,
                POWER_KVT,
                OPEN_TORQUE,
                CLOSE_TORQUE,
                PICTURE_NUMBER);
cofounder of LogicLand Ltd.
my interest Kamenets-Podolskiy Online

User avatar
T-Rex
Moderator
Moderator
Posts: 1188
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Sat Nov 29, 2008 8:20 pm

Это не лажа, это Forward-Only Cursors которые в ODBC считаются стандартными.
В общем-то все на эти грабли натыкаются рано или поздно :)

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3799
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN » Sun Nov 30, 2008 5:05 am

А когда то они стандартными не были....... :)

vtararin
Knows some wx things
Knows some wx things
Posts: 37
Joined: Thu May 24, 2007 4:43 pm
Location: Ukraine
Contact:

Post by vtararin » Sun Nov 30, 2008 9:27 am

Да нет, это лажа, ForwardOnly - это курсор в котором можно двигаться по записям только в перед, а насчет ограничений в порядке выбора полей, я первый раз слышу. Просветите, ссылочку на описание киньте.

Или это форма трактовки ForwardOnly от ODBC?

Пользовал SQLAnywhere через ODBC правда из под Centura TeamDeveloper, так там таких вещей не было.
cofounder of LogicLand Ltd.
my interest Kamenets-Podolskiy Online

SmileGobo
Earned some good credits
Earned some good credits
Posts: 111
Joined: Wed Jul 30, 2008 8:01 am
Location: Russia/MO
Contact:

Post by SmileGobo » Mon Dec 01, 2008 11:01 pm

А что, уважаемые знатоки, может сказать по поводу использования SQLite? Назрел проектик, где необходимо использовать эту СУБД(я так понимаю она встраиваемая).
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax

User avatar
T-Rex
Moderator
Moderator
Posts: 1188
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Mon Dec 01, 2008 11:30 pm

Ухъ.. по поводу SQLite уже сказано-пересказано столько что просто мозх лопается. Сходи на http://wxwidgets.info и почитай статью, там вроде я по максимуму описал что можно с ней делать.

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3799
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN » Tue Dec 02, 2008 12:35 am

A vot takoj voprosik: esli ja otkroju ACCESS, zajdu v sozdanie papku "Reports" (Otchety), vyberu otchet i nagmu na knopku "Desijn" (Design), to poluchu okno redaktirovanija otchets.

Hotelos by znat gde nahoditsja eto okno?

Spasibo.

Post Reply