Russian Qt Forum
Май 18, 2012, 20:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Сборка QIBASE  (Прочитано 5527 раз)
cooler_3105
Гость
« : Март 11, 2009, 12:12 »

Не удается собрать плагин QIBASE под винду. Использую Firebird
Выполняю
Код:
   
cd %QTDIR%\src\plugins\sqldrivers\ibase
qmake -o Makefile "INCLUDEPATH+=C:\Program Files\Firebird\Firebird_2_1\include" "LIBS+=-lC:\Program Files\Firebird|Firebird_2_1\lib\fbclient_ms" ibase.pro
make
На что компилятор мне выдает:
Код:
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Qt/4.3.0/src/plugins/sqldrivers/ibase'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -shared -Wl,--out-implib,c:\Qt\4.3.0\plugins\sqldrivers\libqsqlibased4.a -o "..\..\..\..\plugins\sqldrivers\qsqlibased4.dll" tmp\obj\debug_shared\main.o tmp\obj\debug_shared\qsql_ibase.o  -L"c:\Qt\4.3.0\lib" -L"c:\Qt\4.3.0\lib" tmp\obj\debug_shared\qsqlibased_resource_res.o -lc:\Program Files\Firebird\Firebird_2_1\lib\fbclient_ms -lQtSqld4 -lQtCored4
g++: Files\Firebird\Firebird_2_1\lib\fbclient_ms: No such file or directory
mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlibased4.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/4.3.0/src/plugins/sqldrivers/ibase'
mingw32-make[1]: *** [debug-all] Error 2
Подскажите что не так делаю? fbclient_ms.lib преспокойненько лежит в C:\Program Files\Firebird\Firebird_2_1\lib
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 4122


Жаждущий знаний


« Ответ #1 : Март 11, 2009, 12:41 »

Читаем Вики: http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0_Firebird_%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC_MinGW_32.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.

С уважением.
Пантер.
ax
Чайник
*
Offline Offline

Сообщений: 55


« Ответ #2 : Март 11, 2009, 13:13 »

Посмотри на http://code.google.com/p/qtfirebirdibppsqldriver/
Записан
cooler_3105
Гость
« Ответ #3 : Март 11, 2009, 13:58 »

panter_dsd, ну как-то неразумно ради сборки одного плагина заново конфигурировать qt. Лучше наверное вручную его собрать.
Плагин, как мне кажется, я собрал: в папке plugins\sqldrivers появились qsqlibase4.dll, qsqlibased4.dll. Но при компиляции программы все равно возникает
Код:
Запуск...
QSqlDatabase: QIBASE driver not loaded

QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC

Cannot open database: QSqlError(-1, "Driver not loaded", "Driver not loaded")

---------------------- Нормальное завершение ----------------------
Подскажите что не так...
« Последнее редактирование: Март 11, 2009, 14:19 от cooler_3105 » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3304


WWW
« Ответ #4 : Март 11, 2009, 15:03 »

я какое-то время не мог, собрать, посему все действия записывал и вот так получилось:
Цитировать
переименовываем fbclient_ms.lib в fbclient.lib

cd %QTDIR%\src\plugins\sqldrivers\ibase
qmake -o Makefile "INCLUDEPATH+=F:\Firebird\Firebird_2_0\include" "LIBS+=F:\Firebird\Firebird_2_0\lib\fbclient.lib" ibase.pro
Записан

Юра.
break
Супер активный житель
*****
Offline Offline

Сообщений: 740


« Ответ #5 : Март 11, 2009, 15:04 »

Была проблема при сборке драйвера ibase для firebird под линукс, под винду еще не пробовал 0- предстоит

Для решения изменили pro файл ibase.pro

Код:
TARGET = qsqlibase

HEADERS = ../../../sql/drivers/ibase/qsql_ibase.h
SOURCES = main.cpp \
  ../../../sql/drivers/ibase/qsql_ibase.cpp

unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lfbclient

win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {
!win32-borland:LIBS *= -lgds32_ms
win32-borland:LIBS  += gds32.lib
}

include(../qsqldriverbase.pri)
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2871



WWW
« Ответ #6 : Март 11, 2009, 15:22 »

Плагин, как мне кажется, я собрал: в папке plugins\sqldrivers появились qsqlibase4.dll, qsqlibased4.dll. Но при компиляции программы все равно возникает QSqlDatabase: QIBASE driver not loaded

Выполни поиск по форуму на предмет "driver not loaded"
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Kirill
Частый гость
***
Offline Offline

Сообщений: 261


Хороший, плохой - главное у кого Qt!


WWW
« Ответ #7 : Март 12, 2009, 06:52 »

установи firebird в папку без пробелов и не парься
Записан

fe328
Гость
« Ответ #8 : Апрель 17, 2010, 23:38 »

Ребят! помогите, плиз, ламмеру!
Вроде все делаю по инструкции, но результат отвратный....

Qt 2010.02.01 , IB 5.6

Код:
D:\qt\qt\src\plugins\sqldrivers\ibase>cd %QTDIR%\src\plugins\sqldrivers\ibase
D:\qt\qt\src\plugins\sqldrivers\ibase>qmake "INCLUDEPATH+=C:\ib\include" ibase.pro
D:\qt\qt\src\plugins\sqldrivers\ibase>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        NMAKE -f Makefile.Debug all

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\..\..\include" -I"c:\ib\include" -I"..\..\..\..\include\ActiveQt" -I"tmp\moc\debug_shared" -I"..\..\..\..\mkspecs\win32-g++" -o tmp\obj\debug_shared\qsql_ibase.o ..\..\..\sql\drivers\ibase\qsql_ibase.cpp

..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'void initDA(XSQLDA*)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:122: error: 'SQL_INT64' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:127: error: 'SQL_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:128: error: 'SQL_TYPE_TIME' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:129: error: 'SQL_TYPE_DATE' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QVariant::Type qIBaseTypeName(int, bool)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:176: error: 'blr_sql_time' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:178: error: 'blr_sql_date' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:180: error: 'blr_timestamp' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:188: error: 'blr_int64' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QVariant::Type qIBaseTypeName2(int, bool)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:208: error: 'SQL_INT64' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:213: error: 'SQL_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:215: error: 'SQL_TYPE_TIME' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:217: error: 'SQL_TYPE_DATE' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: At global scope:
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:228: error: 'ISC_TIMESTAMP' does not name a type
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QDateTime fromTimeStamp(char*)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:246: error: 'ISC_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:246: error: expected primary-expression before 'int'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:247: error: expected primary-expression before 'int'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: At global scope:
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:252: error: 'ISC_TIME' does not name a type
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QTime fromTime(char*)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:263: error: 'ISC_TIME' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:263: error: expected primary-expression before 'int'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: At global scope:
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:268: error: 'ISC_DATE' does not name a type
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QDate fromDate(char*)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:284: error: 'ISC_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:284: error: expected primary-expression before 'int'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'char* readArrayBuffer(QList<QVariant>&, char*, short int, short int*, ISC_ARRAY_DESC*, QTextCodec*)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:535: error: 'blr_int64' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:544: error: 'blr_timestamp' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:547: error: 'ISC_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:550: error: 'blr_sql_time' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:553: error: 'ISC_TIME' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:556: error: 'blr_sql_date' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:559: error: 'ISC_DATE' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'char* createArrayBuffer(char*, const QList<QVariant>&, QVariant::Type, short int, ISC_ARRAY_DESC*, QString&, QTextCodec*)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:736: error: 'ISC_DATE' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:736: error: expected primary-expression before ')' token
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:736: error: expected ')' before 'buffer'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:742: error: 'ISC_TIME' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:742: error: expected primary-expression before ')' token
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:742: error: expected ')' before 'buffer'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:749: error: 'ISC_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:749: error: expected primary-expression before ')' token
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:749: error: expected ')' before 'buffer'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function 'virtual bool QIBaseResult::prepare(const QString&)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:910: error: 'SQL_DIALECT_V6' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function 'virtual bool QIBaseResult::exec()':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:997: error: 'SQL_INT64' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1024: error: 'SQL_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1025: error: 'ISC_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1025: error: expected primary-expression before ')' token
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1025: error: expected ')' before 'd'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1027: error: 'SQL_TYPE_TIME' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1028: error: 'ISC_TIME' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1028: error: expected primary-expression before ')' token
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1028: error: expected ')' before 'd'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1030: error: 'SQL_TYPE_DATE' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1031: error: 'ISC_DATE' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1031: error: expected primary-expression before ')' token
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1031: error: expected ')' before 'd'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1061: error: 'SQL_DIALECT_V6' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1063: error: 'SQL_DIALECT_V6' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function 'virtual bool QIBaseResult::gotoNext(QVector<QVariant>&, int)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1102: error: 'SQL_DIALECT_V6' was notdeclared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1127: warning: enumeration value 'LowPrecisionDouble' not handled in switch
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1151: error: 'SQL_INT64' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1178: error: 'SQL_TIMESTAMP' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1181: error: 'SQL_TYPE_TIME' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1184: error: 'SQL_TYPE_DATE' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function 'void QIBaseDriver::qHandleEventNotification(void*)':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1843: error: 'ISC_ULONG' was not declared in this scope
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1843: error: expected ';' before 'counts'
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1844: error: 'counts' was not declared in this scope
NMAKE : fatal error U1077: 'g++' : return code '0x1' Stop.
NMAKE : fatal error U1077: 'C:\WINDOWS\System32\NMAKE.EXE' : return code '0x2' Stop.
Записан
crossly
phpBB Житель матрицы
******
Offline Offline

Сообщений: 1277


« Ответ #9 : Апрель 20, 2010, 10:13 »

каким компилятором собираете ??.... LIBS прописано не правильно у вас...
Записан

нет препятствий патриотам... нет преград энтузиастам...
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3304


WWW
« Ответ #10 : Апрель 20, 2010, 10:21 »

>>каким компилятором собираете ??.
коль скоро используется nmake, то видимо студийным
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3304


WWW
« Ответ #11 : Апрель 20, 2010, 10:24 »

Я так собирал для FireBird'а и MinGW32:
переименовываем fbclient_ms.lib в fbclient.lib
cd %QTDIR%\src\plugins\sqldrivers\ibase
qmake -o Makefile "INCLUDEPATH+=F:\Firebird\Firebird_2_1\include" "LIBS+=F:\Firebird\Firebird_2_1\lib\fbclient_ms.lib"
make

П.С. все пути без пробелов, иначе придётся дополнительно в такие штуки заворачивать:
\"
Записан

Юра.
crossly
phpBB Житель матрицы
******
Offline Offline

Сообщений: 1277


« Ответ #12 : Апрель 20, 2010, 10:42 »

сори.... просто автор топика собирал mingw .... там не корректно указан LIBS .... по поводу второго... да ... не видит инклюдов
Записан

нет препятствий патриотам... нет преград энтузиастам...
vaychick
Новичок

Offline Offline

Сообщений: 12


« Ответ #13 : Май 02, 2011, 10:52 »

Тоже долго парился, помогло то, что написоно в вики НО INCLUDEPATH и LIBS нужно ставить вне блока win32

drivers.pri

Код:
contains(sql-drivers, ibase) {
    HEADERS += drivers/ibase/qsql_ibase.h
    SOURCES += drivers/ibase/qsql_ibase.cpp
    
INCLUDEPATH += "C:/Program Files/Firebird/Firebird_2_0/include"
LIBS += "C:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib"

    unix:LIBS *= -lgds  
    
    win32 {
        !win32-borland:LIBS *= -lfbclient_ms
        win32-borland:LIBS  += fbclient_ms.lib
    }
}

ibase.pro

Код:
TARGET = qsqlibase

HEADERS = ../../../sql/drivers/ibase/qsql_ibase.h
SOURCES = main.cpp \
 ../../../sql/drivers/ibase/qsql_ibase.cpp

INCLUDEPATH += "C:/Program Files/Firebird/Firebird_2_0/include"
LIBS += "C:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib"

unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgds

win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {

    !win32-borland:LIBS *= -lfbclient_ms
    win32-borland:LIBS  += fbclient_ms.lib
}

include(../qsqldriverbase.pri)

иначе будет писать, что не может найти -lfbclient_ms
« Последнее редактирование: Май 02, 2011, 11:17 от vaychick » Записан
vaychick
Новичок

Offline Offline

Сообщений: 12


« Ответ #14 : Июнь 27, 2011, 09:03 »

Продолжаем тему, вышел новый Qt 4.7.3, для которого тоже нужно собрать QIBASE.
Исходники, к новому Qt в комплекте не идут, скачивал отдельно.

ibase.pro
Код:
TARGET = qsqlibase

SOURCES = main.cpp

INCLUDEPATH += "C:/Program Files/Firebird/Firebird_2_0/include" "C:/QtSDK/Desktop/Qt/4.7.3/mingw/lib"

LIBS += -L"C:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib"

include(../../../sql/drivers/ibase/qsql_ibase.pri)

include(../qsqldriverbase.pri)

sql\drivers\ibase\qsql_ibase.pri
Код:
HEADERS += $$PWD/qsql_ibase.h
SOURCES += $$PWD/qsql_ibase.cpp

unix {
    !contains(LIBS, .*gds.*):!contains(LIBS, .*libfb.*):LIBS += -lgds
} else {
    !contains(LIBS, .*gds.*):!contains(LIBS, .*fbclient.*) {
        win32-borland:LIBS += gds32.lib
        else:LIBS += -lgds32_ms
    }
}

вывод:

Код:
C:\QtSDK\src\src\plugins\sqldrivers\ibase>make
make -f Makefile.Debug all
make[1]: Entering directory `C:/QtSDK/src/src/plugins/sqldrivers/ibase'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -mthreads -Wl -shared -Wl,--out-implib,c:/QtSDK/src/plugins/sqldrivers/libqsq
libased4.a -o ../../../../plugins/sqldrivers/qsqlibased4.dll tmp/obj/debug_share
d/main.o tmp/obj/debug_shared/qsql_ibase.o tmp/obj/debug_shared/moc_qsql_ibase.o
  -L'c:/QtSDK/src/lib' -L'c:/QtSDK/src/lib' tmp/obj/debug_shared/qsqlibased_reso
urce_res.o "-LC:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib" -lQtSq
ld4 -lQtCored4
c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cann
ot find -lQtSqld4
collect2: ld returned 1 exit status
make[1]: *** [../../../../plugins/sqldrivers/qsqlibased4.dll] Error 1
make[1]: Leaving directory `C:/QtSDK/src/src/plugins/sqldrivers/ibase'
make: *** [debug-all] Error 2

cannot find -lQtSqld4, хотя:
C:\QtSDK\Desktop\Qt\4.7.3\mingw\lib - libQtSql4.a есть
Раньше ругался на fbclient, но я его положил в папку ibase, теперь не может найти отладочную библиотеку, хотя в путях, у него прописано:

Вопрос, как прописать в конфиге, где искать QtSqld4?


Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.061 секунд. Запросов: 22.