Re: Fb30 не запускается как сервис

2011-04-03 Пенетрантность Костюковский Олег

Ок. Спасибо.

Олег Костюковский. 





Fb30 не запускается как сервис

2011-04-03 Пенетрантность Костюковский Олег

На машине с 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)

2010-09-15 Пенетрантность Костюковский Олег
Вот полный скрипт.
/**/
/***   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)

2010-09-14 Пенетрантность Костюковский Олег
Имеются две идентичные процедуры(текст приведен ниже) ниже. Непонятно почему в 
первой стали наблюдаться тормоза(поэтому быстро возникла вторая). Отличаются 
только текстом одного запроса(который почему то стал тормозить(не знаю может 
удалил какой то индекс из таблицы 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

2010-05-16 Пенетрантность Костюковский Олег

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

2010-05-15 Пенетрантность Костюковский Олег
А может ли быть проблема в том, что на машине стоит только сервер 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

2010-05-15 Пенетрантность Костюковский Олег
Денвер не подходит, поскольку он только для разработки. В интернет его не 
выставиш. А вот по аналогии настроить не удается.



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

2010-05-14 Пенетрантность Костюковский Олег
  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

2010-05-14 Пенетрантность Костюковский Олег

Помогите настроить связку 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.



С уважением Олег.