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

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

Post by T-Rex »

Ухъ.. давно собиралось, может год тому назад. Там же ж вроде все протоколы через плагины работают? Щаз наверное не найду старых сорцов, так можно было бы более точно сказать.
Но в любом случае DatabaseLayer на данный момент наверное самая удобная штука.
User avatar
T-Rex
Moderator
Moderator
Posts: 1248
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex »

Гы, порылся сейчас в архивах, это было не FreeTDS, а libDBI с TDS-плагином. Вот как оно бывает
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN »

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 »

Я когда работал с 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: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN »

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 »

По протоколам и 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: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN »

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 »

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 »

Еще одна лажа в 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: 1248
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex »

Это не лажа, это Forward-Only Cursors которые в ODBC считаются стандартными.
В общем-то все на эти грабли натыкаются рано или поздно :)
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN »

А когда то они стандартными не были....... :)
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 »

Да нет, это лажа, 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 »

А что, уважаемые знатоки, может сказать по поводу использования SQLite? Назрел проектик, где необходимо использовать эту СУБД(я так понимаю она встраиваемая).
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax
User avatar
T-Rex
Moderator
Moderator
Posts: 1248
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex »

Ухъ.. по поводу SQLite уже сказано-пересказано столько что просто мозх лопается. Сходи на http://wxwidgets.info и почитай статью, там вроде я по максимуму описал что можно с ней делать.
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN »

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