Re: Fb30 не запускается как сервис
Ок. Спасибо. Олег Костюковский.
Fb30 не запускается как сервис
На машине с Windows7 x64 стоит Fb 2.5 x86. Решил протестировать Fb 3.0 x86 (почему не х64, потому что UDF 32 разрядные а переписать не возможности) Останавливаю Fb25 путем запуска uninstall.bat Скачиваю последний snapshot Fb 3.0, разархивирую в C:\Fb3. Запускаю C:\Fb3\install_super.bat(кстате, нормально что сервер не в директории Bin как в Fb25) и сервис не стартует. Если зайти в сервисы то он почему то пытается запустится не с C:\Fb3, а с C:\Bin. Как правильно запустить Fb30?
Re: Стали возникать томоза при SELECT MA X(DATA) (fb 2.5.26082 и fb 2.5.25054)
Вот полный скрипт. /**/ /*** Generated by IBExpert 15.09.2010 22:33:06 ***/ /**/ /**/ /*** Following SET SQL DIALECT is just for the Database Comparer ***/ /**/ SET SQL DIALECT 3; /**/ /*** Tables ***/ /**/ CREATE GENERATOR GLOBAL_ID; CREATE TABLE KLIENT_ACCOUNT_PROVODKI ( ID INTEGER NOT NULL, ID_ACCOUNT T_BIG_INT NOT NULL /* T_BIG_INT = BIGINT */, ID_XXI T_BIG_INT NOT NULL /* T_BIG_INT = BIGINT */, ID_XXI_0 T_BIG_INT /* T_BIG_INT = BIGINT */, DATA T_DATE /* T_DATE = DATE */, SUMMAT_SUMMA NOT NULL /* T_SUMMA = NUMERIC(16,2) */, NO_DOC T_INT /* T_INT = INTEGER */, NAZNACHENIE A_1024 /* A_1024 = VARCHAR(1024) */, KONTRAGENT T_A250 /* T_A250 = VARCHAR(250) */, BANK_KONTRAGENTA T_A250 /* T_A250 = VARCHAR(250) */, KONTRAGENT_INN T_A16 /* T_A16 = VARCHAR(16) */, KONTRAGENT_ACCOUNT T_A32 /* T_A32 = VARCHAR(32) */, BIC_BANK_KONTRAGENT T_A16 /* T_A16 = VARCHAR(16) */, DEL FIB$BOOLEAN DEFAULT 1 /* FIB$BOOLEAN = SMALLINT DEFAULT 1 NOT NULL CHECK(VALUE IN (0,1)) */, STATUS_PROVODKI SMALLINT DEFAULT 4 NOT NULL, NO_PACHKAT_INT /* T_INT = INTEGER */, KLIENT_NAME T_A250 /* T_A250 = VARCHAR(250) */, KLIENT_INN T_A16 /* T_A16 = VARCHAR(16) */, KLIENT_ACC T_A20 /* T_A20 = VARCHAR(20) */ ); /**/ /*** Unique Constraints ***/ /**/ ALTER TABLE KLIENT_ACCOUNT_PROVODKI ADD CONSTRAINT UNQ1_KLIENT_ACCOUNT_PROVODKI UNIQUE (ID_ACCOUNT, ID_XXI, ID_XXI_0); /**/ /*** Primary Keys ***/ /**/ ALTER TABLE KLIENT_ACCOUNT_PROVODKI ADD CONSTRAINT PK_KLIENT_ACCOUNT_PROVODKI PRIMARY KEY (ID); /**/ /*** Foreign Keys ***/ /**/ ALTER TABLE KLIENT_ACCOUNT_PROVODKI ADD CONSTRAINT FK_KLIENT_ACCOUNT_PROVODKI_1 FOREIGN KEY (ID_ACCOUNT) REFERENCES KLIENT_ACCOUNT (ID) ON DELETE CASCADE ON UPDATE CASCADE; /**/ /***Indices ***/ /**/ CREATE INDEX KLIENT_ACCOUNT_PROVODKI_IDX2 ON KLIENT_ACCOUNT_PROVODKI (KONTRAGENT_INN); CREATE DESCENDING INDEX KLIENT_ACCOUNT_PROVODKI_IDX_DAT ON KLIENT_ACCOUNT_PROVODKI (DATA); /**/ /***Triggers ***/ /**/ SET TERM ; ^
Стали возникать томоза при SELECT MAX(DA TA) (fb 2.5.26082 и fb 2.5.25054)
Имеются две идентичные процедуры(текст приведен ниже) ниже. Непонятно почему в первой стали наблюдаться тормоза(поэтому быстро возникла вторая). Отличаются только текстом одного запроса(который почему то стал тормозить(не знаю может удалил какой то индекс из таблицы KLIENT_ACCOUNT_PROVODKI )). 1) SELECT MAX(DATA) FROM KLIENT_ACCOUNT_PROVODKI WHERE (SUMMA>0) AND (ID_ACCOUNT = :VAR_ID_ACC) into :DATE_LAST_PRIXOD; Statement: SELECT MAX(DATA) FROM KLIENT_ACCOUNT_PROVODKI WHERE (SUMMA>0) AND (ID_ACCOUNT = :VAR_ID_ACC) into :DATE_LAST_PRIXOD; Plan: (KLIENT_ACCOUNT_PROVODKI ORDER KLIENT_ACCOUNT_PROVODKI_IDX1 INDEX (FK_KLIENT_ACCOUNT_PROVODKI_1)) Query Plan Query Time Prepare : 0,00 ms Execute : 21 403,00 ms Avg fetch time: 856,12 ms 2) SELECT ID_ACCOUNT, MAX(DATA) FROM KLIENT_ACCOUNT_PROVODKI WHERE (SUMMA>0) AND (ID_ACCOUNT = :VAR_ID_ACC) group by ID_ACCOUNT into :VAR_ID_ACC, :DATE_LAST_PRIXOD; Statement: SELECT ID_ACCOUNT, MAX(DATA) FROM KLIENT_ACCOUNT_PROVODKI WHERE (SUMMA>0) AND (ID_ACCOUNT = :VAR_ID_ACC) group by ID_ACCOUNT into :VAR_ID_ACC, :DATE_LAST_PRIXOD; Plan: (KLIENT_ACCOUNT_PROVODKI ORDER UNQ1_KLIENT_ACCOUNT_PROVODKI INDEX (FK_KLIENT_ACCOUNT_PROVODKI_1)) Query Plan Query Time Prepare : 16,00 ms Execute : 78,00 ms Avg fetch time: 3,00 ms Memory Вторая выполняется в гораздо быстрее первой Мистика ну в раз 10 точно. На текущий момент на таблицу KLIENT_ACCOUNT_PROVODKI имеются следующие индексы(добавлял удалял) ALTER TABLE KLIENT_ACCOUNT_PROVODKI ADD CONSTRAINT PK_KLIENT_ACCOUNT_PROVODKI PRIMARY KEY (ID); ALTER TABLE KLIENT_ACCOUNT_PROVODKI ADD CONSTRAINT FK_KLIENT_ACCOUNT_PROVODKI_1 FOREIGN KEY (ID_ACCOUNT) REFERENCES KLIENT_ACCOUNT (ID) ON DELETE CASCADE ON UPDATE CASCADE; CREATE DESCENDING INDEX KLIENT_ACCOUNT_PROVODKI_IDX1 ON KLIENT_ACCOUNT_PROVODKI (DATA, ID_ACCOUNT); CREATE INDEX KLIENT_ACCOUNT_PROVODKI_IDX2 ON KLIENT_ACCOUNT_PROVODKI (KONTRAGENT_INN); CREATE INDEX KLIENT_ACCOUNT_PROVODKI_IDX3 ON KLIENT_ACCOUNT_PROVODKI (DATA); CREATE DESCENDING INDEX KLIENT_ACCOUNT_PROVODKI_IDX_DAT ON KLIENT_ACCOUNT_PROVODKI (DATA); 1) create procedure ACC_BLOC_AREST_SEL returns ( DATA_ACOUNT type of column KLIENT_ACCOUNT.DATA_ACOUNT, ACCOUNT type of column KLIENT_ACCOUNT.ACCOUNT, PRIZNAK type of column KLIENT_ACCOUNT.PRIZNAK, NO_ANKET type of column KLIENT.NO_ANKET, NAME_SHORT type of column KLIENT.NAME_SHORT, MENADGER type of column KLIENT.MENADGER, PERSON_OPEN_ACCOUNT type of column KLIENT.PERSON_OPEN_ACCOUNT, FIO_MENEDGER type of column PERSONAL.F, FIO_OPEN_ACCOUNT type of column PERSONAL.F, DATE_LAST_PRIXOD type of T_DATE, OSTATOK type of T_SUMMA) as declare variable VAR_ID_ACC type of column KLIENT_ACCOUNT.ID; BEGIN FOR SELECT KLIENT_ACCOUNT.DATA_ACOUNT, KLIENT_ACCOUNT.ACCOUNT, KLIENT_ACCOUNT.PRIZNAK, KLIENT.NO_ANKET, KLIENT.NAME_SHORT, KLIENT.MENADGER, KLIENT.PERSON_OPEN_ACCOUNT, KLIENT_ACCOUNT.ID FROM KLIENT INNER JOIN KLIENT_ACCOUNT ON (KLIENT.ID = KLIENT_ACCOUNT.ID_KLIENT) WHERE ( (KLIENT.no_anket > 0) AND (KLIENT_ACCOUNT.account STARTING WITH '40') AND (KLIENT_ACCOUNT.PRIZNAK <> 'О') AND (KLIENT_ACCOUNT.PRIZNAK <> 'З') ) INTO :DATA_ACOUNT, :ACCOUNT, :PRIZNAK, :NO_ANKET, :NAME_SHORT, :MENADGER, :PERSON_OPEN_ACCOUNT, :VAR_ID_ACC DO BEGIN SELECT F FROM PERSONAL WHERE PERSONAL.id = :menadger INTO :FIO_MENEDGER; SELECT F FROM PERSONAL WHERE PERSONAL.id = :PERSON_OPEN_ACCOUNT INTO :FIO_OPEN_ACCOUNT; SELECT SUM(summa) FROM KLIENT_ACCOUNT_PROVODKI WHERE (ID_ACCOUNT = :VAR_ID_ACC) into :OSTATOK; SELECT MAX(DATA) FROM KLIENT_ACCOUNT_PROVODKI WHERE (SUMMA>0) AND (ID_ACCOUNT = :VAR_ID_ACC) into :DATE_LAST_PRIXOD; if( OSTATOK is null) then OSTATOK = 0; if( DATE_LAST_PRIXOD is null) then DATE_LAST_PRIXOD = '04.08.1994'; SUSPEND; END END Statement: SELECT MAX(DATA) FROM KLIENT_ACCOUNT_PROVODKI WHERE (SUMMA>0) AND (ID_ACCOUNT = :VAR_ID_ACC) into :DATE_LAST_PRIXOD; Plan: (KLIENT_ACCOUNT_PROVODKI ORDER KLIENT_ACCOUNT_PROVODKI_IDX1 INDEX (FK_KLIENT_ACCOUNT_PROVODKI_1)) Query Plan
Re: Помогите настроить связку PHP5 и Firebird
1. почему так тщательно избегаете официального инсталлятора? Просто так привык за 5 лет. Да и часто на рабочей машине работаю с последними ShapShot. Даже 5 рабочих проектов работает на снапшотах FB25. А что есть инсталятор под Fb25? О чудо. По совету Дмитрия Кузменко поставил FB2.1 с официпльного инсталятора. Проверил, чтото не работает. Плюнул. Деинсталировал Fb21 и вернул на место FB25, FbClient от Fb25 переименовал в gds32.dll и положил в директорию PHP, чтобы вернуть все назад. Перегрузил машину и думаю дай попробую работает ли PHP, MySQL и заодно Fb. Даже не на что не надеялся, и вдруг коннект прошел и PHP соединился с базой. Такое впечетление, что инсталятор установил библиотеки от VisualStudio? Странно но программы на Builder C++ 6 и FibPlus до этого работали нормально. Всем большее спасибо, буду копать дальше.
Re: Помогите настроить связку PHP5 и Firebird
А может ли быть проблема в том, что на машине стоит только сервер Firbird и никогда не ставился Ib. Ставился Fb сервер не через инсталятор, а через install_super.bat с директории Bin. Может нужны настройки реестра какие то. Может недостаточно только переименовать fbclient.dll и положить в PHP директорию и подключить extension=php_interbase.dll предварительно указав PHP директорию extension_dir. Операционка Vista. Куча программ написанных на Builder C++ c использованием FibPlus работают, а вот, что нужно PHP 5.2.13 не понимаю. Олег.
Re: Помогите настроить связку PHP5 и Firebird
Денвер не подходит, поскольку он только для разработки. В интернет его не выставиш. А вот по аналогии настроить не удается. Fatal error: Call to undefined function ibase_connect() in D:\Site\kovsoft\www\index.php on line 3 Вот старшие товарищи подкинули ссылку: http://www.denwer.ru/packages/firebird.html
Re: Помогите настроить свя зку PHP5 и Firebird
From: Алексей Вишняков За 2.5 не скажу, но 1.5 у меня завелось после того, как я переименовал fbclient.dll в gds32.dll и подкинул в папку PHP. Переименовал. Результата нет. Похоже я, чтото нетак делаю. Может у меня не тот php_interbase.dll. Где взять последний. этот у меня от денвера. Вот ошибка при загрузке Apache. PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP5\\ext\\php_interbase.dll' - \xcd\xe5 \xf3\xe4\xe0\xeb\xee\xf1\xfc \xe7\xe0\xef\xf3\xf1\xf2\xe8\xf2\xfc \xef\xf0\xe8\xeb\xee\xe6\xe5\xed\xe8\xe5, \xef\xee\xf1\xea\xee\xeb\xfc\xea\xf3 \xe5\xe3\xee \xef\xe0\xf0\xe0\xeb\xeb\xe5\xeb\xfc\xed\xe0\xff \xea\xee\xed\xf4\xe8\xe3\xf3\xf0\xe0\xf6\xe8\xff \xed\xe5\xef\xf0\xe0\xe2\xe8\xeb\xfc\xed\xe0. \xc4\xee\xef\xee\xeb\xed\xe8\xf2\xe5\xeb\xfc\xed\xfb\xe5 \xf1\xe2\xe5\xe4\xe5\xed\xe8\xff \xf1\xee\xe4\xe5\xf0\xe6\xe0\xf2\xf1\xff \xe2 \xe6\xf3\xf0\xed\xe0\xeb\xe5 \xf1\xee\xe1\xfb\xf2\xe8\xe9 \xef\xf0\xe8\xeb\xee\xe6\xe5\xed\xe8\xe9.\r\n in Unknown on line 0
Помогите настроить связку PHP5 и Firebird
Помогите настроить связку PHP5 и Firebird Появилась необходимость подключится к рабочей базе Fb25 из интернета. Поднял Apache/2.2.15, PHP 5.3.2 и и даже MySQL 5 вроде все номально дышет. Но нет желания делать репликацию части данных с Fb25 в MySQL 5, поэтому попытался сделать настройку связки FB25 c PHP. Вроде подключил модуль к PHP php_interbase.dll При запуске скрипта получаем, что не определена функция ibase_connect(), Похоже, что не загружается модуль php_interbase.dll, о чем в принципе и говорит phpinfo(); Fatal error: Call to undefined function ibase_connect() in D:\Site\kovsoft\www\index.php on line 3 Вот тут возникла куча вопросов: 0. Есть ли у кого рабочая инструкция по настройке связки. 1. скачал php_interbase.dll версии 5.3(подходит ли для firebird); 2.где указывать клиента fbclient.dll. 3. какие еще опции нужно прописывать в PHP 4. И неужели сервер FB должен на том же компе что и сервер Apache, как указано в тех рекомендациях по настройке которые нашел я. 5. и вообще, судя по скудному невнятному материалу в Internet по связке FB и PHP Apache, может это вообще не стоит внимания и лучше написать репликацию с mySQL. С уважением Олег.