Альтернативы DatabaseLayer?

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
alex_rain
Earned a small fee
Earned a small fee
Posts: 10
Joined: Thu Apr 19, 2012 12:27 am
Location: Russia

Альтернативы DatabaseLayer?

Post by alex_rain » Thu Apr 19, 2012 2:54 am

Есть ли альтернативы DatabaseLayer с поддержкой баз данных MySQL и MS SQL Server (ODBC или напрямую). Хотелось бы также полноценную поддержку хранимых процедур.

Code::Blocks svn 7789, wxPack 2.8.12.01, TDM MinGW GCC 4.4.1, DatabaseLayer 1.8

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Re: Альтернативы DatabaseLayer?

Post by borr_1 » Thu Apr 19, 2012 11:03 am

http://debea.net/trac/wiki/WxDba
полноценную поддержку хранимых процедур
это вообще что-то не понятное, какие-то проблемы с Execute ХП или SELECT FROM ХП?
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: Альтернативы DatabaseLayer?

Post by Mojo » Thu Apr 19, 2012 12:47 pm

Для Firebird я использовал IBPP - http://www.ibpp.org/

Могу предположить, что для PostgreSQL и MySQL есть так же свои С++ клиентские-библиотеки
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: Альтернативы DatabaseLayer?

Post by Mojo » Thu Apr 19, 2012 12:50 pm

Есть еще SOCI http://soci.sourceforge.net/ но этого фрукта я не использовал, поэтому не могу сказать, что он из себя представляет.
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

alex_rain
Earned a small fee
Earned a small fee
Posts: 10
Joined: Thu Apr 19, 2012 12:27 am
Location: Russia

Re: Альтернативы DatabaseLayer?

Post by alex_rain » Fri Apr 20, 2012 12:47 am

это вообще что-то не понятное, какие-то проблемы с Execute ХП или SELECT FROM ХП?
Требуется поддержка параметров INPUT, OUTPUT и INPUT_OUTPUT.
Например SOCI, как я понял, не поддерживает ХП в ODBC (http://soci.sourceforge.net/doc/backends/index.html).
У DatabaseLayer вроде бы поддержка параметров ХП есть (по крайней мере в исходниках встречается SQLBindParameter). Правда пока не понял как использовать.

Code::Blocks svn 7932, wxPack 2.8.12.01, TDM MinGW GCC 4.4.1, DatabaseLayer 1.8
Feci, quod potui. Faciant meliora potentes.

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Re: Альтернативы DatabaseLayer?

Post by borr_1 » Fri Apr 20, 2012 5:27 am

Ни одна либа отдельно параметры ХП не держит ей это не нужно ибо параметры к ХП задаются в самом запросе типа

EXECUTE MYSP (par1, par2) или EXECUTE PROCEDURE MYSP (par1, par2) - это если ничего не нужно возвращать из ХП
и
SELECT * FROM MYSP(par1, par2) - ели ХП что-то возвращает

Ты ж почему-то про параметры от SELECT не спрашиваешь.

В зависимости от SQL сервера синтаксис может меняться
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

alex_rain
Earned a small fee
Earned a small fee
Posts: 10
Joined: Thu Apr 19, 2012 12:27 am
Location: Russia

Re: Альтернативы DatabaseLayer?

Post by alex_rain » Fri Apr 20, 2012 6:22 am

SELECT * FROM MYSP(par1, par2) - ели ХП что-то возвращает
Для MySQL это сработает, а для MS SQL нет.
Например в OTL можно работать непосредственно с параметрами (http://otl.sourceforge.net/otl3_ex24.htm).

Code::Blocks svn 7932, wxPack 2.8.12.01, TDM MinGW GCC 4.4.1, DatabaseLayer 1.8
Feci, quod potui. Faciant meliora potentes.

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Re: Альтернативы DatabaseLayer?

Post by borr_1 » Fri Apr 20, 2012 6:33 am

А ты OPENROWSET и OPENQUERY для MS пробовал?

Code: Select all

 otl_stream o(1, // buffer size should be equal to 1 in case of stored procedure call
              "{call my_proc("
              " :A<int,inout>, "//запросы с  параметрами есть и в wxDbe и в databaselayer при чем тут ХП вообще
              " :B<char[31],out>, "
              " :C<char[31],in> "
              ")}",
                 // stored procedure call
              db // connect object
             );
Почему тогда не используешь OTL в связке с wx?
Last edited by borr_1 on Fri Apr 20, 2012 6:53 am, edited 1 time in total.
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

alex_rain
Earned a small fee
Earned a small fee
Posts: 10
Joined: Thu Apr 19, 2012 12:27 am
Location: Russia

Re: Альтернативы DatabaseLayer?

Post by alex_rain » Fri Apr 20, 2012 6:51 am

А ты OPENROWSET и OPENQUERY для MS пробовал?
Не пробовал. Примером поделишься?

Code::Blocks svn 7932, wxPack 2.8.12.01, TDM MinGW GCC 4.4.1, DatabaseLayer 1.8
Feci, quod potui. Faciant meliora potentes.

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Re: Альтернативы DatabaseLayer?

Post by borr_1 » Fri Apr 20, 2012 6:58 am

Code: Select all

SELECT  * 
INTO    #tmp FROM    
OPENQUERY(YOURSERVERNAME, 'EXEC MyProc @parameters')
 или
SELECT * FROM OPENROWSET('SQLNCLI', 'connection string', 'name of sp')
повторю
У тебя вопрос про параметризованный запрос или про ХП? Почему не используешь OTL?
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

alex_rain
Earned a small fee
Earned a small fee
Posts: 10
Joined: Thu Apr 19, 2012 12:27 am
Location: Russia

Re: Альтернативы DatabaseLayer?

Post by alex_rain » Fri Apr 20, 2012 7:22 am

повторю
У тебя вопрос про параметризованный запрос или про ХП?
:mrgreen:
Для непонятливых:
Требуется поддержка параметров INPUT, OUTPUT и INPUT_OUTPUT.
Вопрос про использование входных, выходных, входных-выходных параметров ХП.
А за пример спасибо.
Почему не используешь OTL?
И правильно. Зачем тогда DatabaseLayer и wxDba, если можно юзать OTL.
И вдогонку: DatabaseLayer запрос через MySQL API выполняет в 2-5 раз медленнее, чем через ODBC (вроде должно быть наоборот).

Реальную альтернативу замороженному проекту нашли, можно тему закрывать.

Code::Blocks svn 7932, wxPack 2.8.12.01, TDM MinGW GCC 4.4.1
Feci, quod potui. Faciant meliora potentes.

Post Reply