Re: [firebird-support] Compatibility questions: Current release versus 1.5.3.4870

2017-07-26 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]

Hi !

It's dificult to tell... From version to version there is minor problens 
that can occur, like new reserved wirds and so on.


But in general, you will be safe doing the upgrade.

It's recommend to perform a back-up/restore cycle to upgrade de database 
ODS. But FB 2.5 can read databases created by 1.5 version.


You have a problem, in the actual state, it's not working, what can you 
lost if you try to upgrade and discover that it will not work ?


Make a copy of the database and give it a try, it will not hurt.

good luck !



Em 26/7/2017 12:52, scott...@comcast.net [firebird-support] escreveu:



Hello!


I know it's been a while since I've posted on this Group, but current 
circumstances have brought me back.


Today, I discovered that Microsoft forcibly removed fbserver & fbguard 
for version 1.5.3.4870. This version is included with SAM Broadcaster 
v3, which is critical to my work as an "On-Net Personality" on a very 
popular music stream. There was no warning for it's removal at the 
Windows 10 Creator's Update "updates" that happened recently. All of 
the files for Firebird were removed. The application's DB is safe. 
When trying to re-install Firebird-1.5.3.4870-0-Win32.exe, Windows 
throws the "This App can't run on your PC" message with "Firebird 
doesn't work on this version of Windows. An updated app may be 
available" message and shows buttons with "Learn more" and "Close" 
I've been running the 1.5.3.4870 build under Windows 10 with *zero* 
problems up until the last update.

*/
/*
My question (and I'm sorry if I'm asking this before doing any 
research on my own) is simply, how compatible is the 2.5 version with 
databases created with 1.5.3?


I'm nearly in panic-mode here, and exploring all options to get this 
resolved.


Thanks!

--Scott Kindorf
General Manager,
The WebMaster Internet Radio Network
On-Net Personality
"The ScottK Radio Show" on WebMaster Internet Radio Network.




--
Alexandre Benson Smith
Santo Andre - Sao Paulo - Brazil



Re: [firebird-support] Enable authorization for legacy Firebird clients

2016-07-07 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]

HI

Em 7/7/2016 05:49, tomi.j...@oscar.fi [firebird-support] escreveu:




Hi,

I don’t know if i have understand “Enable authorization for legacy 
Firebird clients” right but..


I just installed Firebird 3 to new development server and checked 
“Enable authorization for legacy Firebird clients” so I can test 
connection from old 2.5 clients. In this installation window I create 
random password like “pass1234”. When I connected to database from 
same server connection is okay with “pass1234”. But when I tried to 
connect from old development server where firebird 2.5 is installed 
with “pass1234” I get error “Your user name and password…”.  My 
surprise was when I tried connect database from old server with 
pasword “masterkey” that connection is succesfully.


I have not created user SYSDBA with “masterke” password and still I 
get connected in database.  So my question is that should this be like 
this?


Best regards,

-Tomi





I don't know how are your configurations, but to enabled Legacy Auth you 
must change:


AuthServer = Srp, Legacy_Auth

UserManager = Srp, Legacy_UserManager

WireCrypt = Enabled

after that, the server is enabled to authenticate using the old protocol.

I think you are in this point, but are unable to authenticate from other 
users because the other users was create by the default plugin (SRP), 
you must create those users using the Legacy_UserManager plug in.The 
SYSDBA was automatically created by the installer using the 
Legacy_UserManager plugin this is the reason you could connect using SYSDBA.


connect to your database and execute the following:
select sec$user_name, sec$plugin from sec$users;


You should see something like:
SEC$USER_NAME   SEC$PLUGIN
=== ===
User1   Srp
User2   Srp

This indicates that the users are created but with the new SRP plugin, 
to authenticate legacy users you need to create them using the legacy 
user manager plugin.


execute this:

create user User1 password 'pas1234' using plugin Legacy_AuthManager;
commit;


after that execute this:
select sec$user_name, sec$plugin from sec$users;

You shoud see:

SEC$USER_NAME   SEC$PLUGIN
=== ===
User1   Srp
User2   Srp
User1   Legacy_UserManager


Note that you have two entries for User1, one for the SRP plugin and the 
other for the Legacy Authentication.


HTH

see you !


[firebird-support] FB 3 - Per database configurations (Providers and Security Database vs Legacy Auth)

2016-07-06 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]
Hi !

I am looking at the per-database configuration (FB 3) and have two doubts:

I defined my databases.conf like:
demo_naolocal=c:\bd\demo_naolocal.fdb
{
 Providers = Remote,Loopback
}

after that on the same machine I tryed:

C:\fb3>isql demo_naolocal -user teste -password abc
Statement failed, SQLSTATE = 08001
I/O error during "CreateFile (open)" operation for file "demo_naolocal"
-Error while trying to open file
-O sistema não pode encontrar o arquivo especificado. (Translates to: 
The system could not find the specified file)
Use CONNECT or CREATE DATABASE to specify a database
SQL> quit;

C:\fb3>isql localhost/3053:demo_naolocal -user teste -password abc
Statement failed, SQLSTATE = 08001
unavailable database
Use CONNECT or CREATE DATABASE to specify a database
SQL>


I expected the first one to fail and the second to succeed.


On the release notes page 18 I found this:

Disable embedded connections
If you don't want any type of direct access, you may disable embedded 
mode (= direct filesystem-level
access) altogether by opening firebird.conf and locating the Providers 
entry. The default (which is
probably commented out) is:
#Providers = Remote,Engine12,Loopback
Now, either remove the hash mark and the Engine12 provider (this is the 
one that makes the embedded
connections), or – better – add an uncommented line:
Providers = Remote,Loopback
The Remote provider takes care of remote connections; the Loopback 
provider is responsible for TCP/IP
connections via localhost, as well as (on Windows) WNET/NetBEUI and XNET 
connections to databases
on the local machine. All these connection types require full 
authentication and have the server process, not
the user process, open the database file.
Please notice that you can also set the Providers parameter on a 
per-database basis. You can set a default
in firebird.conf as shown above, and then override it for individual 
databases in databases.conf
like this:
bigbase = C:\Databases\Accounting\Biggus.fdb
{
  Providers = Engine12,Loopback
}


if I change the databases.conf to:
demo_naolocal=c:\bd\demo_naolocal.fdb
{
 Providers = Remote,Loopback,Engine12
}

I can connect with both alternatives.

C:\fb3>isql demo_naolocal -user teste -password abc
Database: demo_naolocal, User: TESTE
SQL> quit;

C:\fb3>isql localhost/3053:demo_naolocal -user teste -password abc
Database: localhost/3053:demo_naolocal, User: TESTE
SQL> quit;

C:\fb3>

What I am doing wrong ?

The second doubt is regarding per-database security vs Legacy User Manager

I have on databases.conf the following entry:

demo_s2=c:\bd\demo_s2.fdb
{
 SecurityDatabase = demo_s2
}

SQL> create user t4 password 't4' using plugin legacy_usermanager;
Statement failed, SQLSTATE = 42S02
add record error
-table PLG$VIEW_USERS is not defined
SQL>

I can create SRP users without a problem, my question is:

Is it possible to have legacy users stored on a database distinct from 
security3.fdb ? if so... I just need to create the missing view ?

SQL> show view plg$view_users;
PLG$USER_NAME   (SEC$USER_NAME) VARCHAR(31) CHARACTER 
SET UNICOD
E_FSS Not Null
PLG$GROUP_NAME  (SEC$USER_NAME) VARCHAR(31) CHARACTER 
SET UNICOD
E_FSS Nullable
PLG$UID (PLG$ID) INTEGER Nullable
PLG$GID (PLG$ID) INTEGER Nullable
PLG$PASSWD  (PLG$PASSWD) VARCHAR(64) CHARACTER SET 
OCTETS No
t Null
PLG$COMMENT (RDB$DESCRIPTION) BLOB segment 80, 
subtype TEXT
CHARACTER SET UNICODE_FSS Nullable
PLG$FIRST_NAME  (SEC$NAME_PART) VARCHAR(32) CHARACTER 
SET UNICOD
E_FSS Nullable
PLG$MIDDLE_NAME (SEC$NAME_PART) VARCHAR(32) CHARACTER 
SET UNICOD
E_FSS Nullable
PLG$LAST_NAME   (SEC$NAME_PART) VARCHAR(32) CHARACTER 
SET UNICOD
E_FSS Nullable
View Source:
 ==
SELECT PLG$USER_NAME, PLG$GROUP_NAME, PLG$UID, PLG$GID, PLG$PASSWD,
 PLG$COMMENT, PLG$FIRST_NAME, PLG$MIDDLE_NAME, PLG$LAST_NAME
 FROM PLG$USERS
 WHERE CURRENT_USER = 'SYSDBA'
OR CURRENT_ROLE = 'RDB$ADMIN'
OR CURRENT_USER = PLG$USERS.PLG$USER_NAME
SQL>

TIA

see you !






++

Visit http://www.firebirdsql.org and click the Documentation item
on the main (top) menu.  Try FAQ and other links from the left-side menu there.

Also search the knowledgebases at http://www.ibphoenix.com/resources/documents/ 

++


Yahoo Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/firebird-support/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:

Re: [firebird-support] Advice requested on design pattern

2015-05-20 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]

On 20/5/2015 16:03, Mike Ro miker...@gmail.com [firebird-support] wrote:



Thank you for your response.

On 20/05/15 11:25, Alan J Davies alan.dav...@aldis-systems.co.uk 
[firebird-support] wrote:


Another way of doing what you want would be to use SPs instead of Views.
Then if you select * from SP and hide it as below, no-one can see what
you are doing with the data.

In this way wouldn't the SP have the same problem that was mentioned 
by Louis, namely that only the index from the first table in the query 
would be used?


Sorry if I misunderstood or my knowledge of SP is lacking.






I did not read it in full details...

But the case of select on views be able to use the index on the first 
table I believe that's because of using of outer joins, with inner joins 
that would not be the case...


see you !


---
Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus 
está ativa.
http://www.avast.com


Re: [firebird-support] Computed index for case insensitive queries

2014-08-25 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]


Em 25/8/2014 00:59, Caroline Beltran caroline.d.belt...@gmail.com 
[firebird-support] escreveu:



Mark, thank you for responding. I ended up downloading FlameRobin and 
it does show computed indexes in the 'Index' tab as well as in the 
DDL, i.e.:


CREATE INDEX IDX_FNAME ON PEOPLE COMPUTED BY (lower(fname));

P.S.  I found your response in my Google 'Sent' folder, it never made 
it into my inbox, but anyway, I am glad I located your message.





Why not use a case insensitve collation ?


see you !


Re: [firebird-support] Suboptimal plan

2014-08-01 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]

Hi !

There is some tricks to change the way optimizer will choose the order 
of tables:


example:
select
   *
from
   LongTable L left join
   ShortTable S on (S.FieldA = L.FieldA)

The outer join would force the table on the left to be scaned first.

Another option is
select
   *
from
   LongTable L join
   ShortTable S on (S.FieldA = L.FieldA+0)

the +0 (or || '' if the field is a char/varchar) would prevent the 
optimizer to use the index on LongTable.FieldA and could lead to change 
the join order


see you !




Em 1/8/2014 18:09, Aldo Caruso aldo.car...@argencasas.com 
[firebird-support] escreveu:



Sean and Carlos,

  thanks for your answer.

  Although the statistics are up to date the optimizer still chooses 
the shorter stream as the controller.


  Nevertheless, I found a workaround using a subquery on the shorter 
table instead of a join.


  This forced the optimizer to traverse the longer table first and 
boosts the performance even more than using an optimized query with a 
fixed plan.


Thank you very much for your help.

Aldo


El 01/08/14 a las 16:01, 'Carlos H. Cantu' lis...@warmboot.com.br 
[firebird-support] escibió:


Are the indexes statistics up to date?

Also, post the query, query plan, and indexes stats.

Carlos
Firebird Performance in Detail - http://videos.firebirddevelopersday.com
www.firebirdnews.org - www.FireBase.com.br

ACacacfs Hello,

ACacacfs In a select statement there are two tables joined by a single
ACacacfs matching field, with search conditions in both of them. One 
of them has

ACacacfs roughly 13 records, while the other has 600.

ACacacfs Inspecting the plan generated by the optimizer, I realized 
that it
ACacacfs uses the shorter one as the controlling stream instead of 
the longer one

ACacacfs (i.e. the shorter table is at the left side).

ACacacfs Using a PLAN expression with the corresponding indexes to 
bypass
ACacacfs the plan deviced by the optimizer in order to switch the 
order of the
ACacacfs streams, the performance is boosted (nearly three times 
faster).


ACacacfs What can cause the optimizer to pick a shorter table as the
ACacacfs controlling stream ?

ACacacfs Is there a workaround to induce the optimizer to select the 
streams
ACacacfs in a fixed way or should I have to resort to a manually 
imposed PLAN ?


ACacacfs Thanks,
ACacacfs Aldo








Re: [firebird-support] How to convert big FIREBIRD DB to one charset (win1251) to UTF8 ?

2014-06-03 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]

Em 30/5/2014 04:26, loris.lu...@gmail.com [firebird-support] escreveu:



I need your help and/or suggestions to solve a (maybe uncommon) task.

I searched a lot on the web and  I had some success using a tool 
called fbclone but
this is definitely not a solution (due to extreme slowness of the 
conversion, many days,

something must be wrong with this software)

I have a large Firebird 2.5 DB (a couple of tables have few millions 
records) to convert from WIN1251 charset to UTF8 charset.


Is there a way to do efficiently this kind of conversion? (preferably 
not using a intermediate text sql dump, that would not applicable 
because the size of the DB).


I'm using Firebird on a linux machine, and I really like to do the job 
using a bash script,

but I can fallback also using a remote Windows pc.

Thanks for any suggestions.

Best regards.



I don't know if there is a faster way... But this one would be a secure 
and very easy way:


1.) Extract metadata from the source database (isql -x)
2.) Change the definition of the domains and/or fields to the desired 
charset

3.) Create a new database with the corrected script
4.) Use IBDatapump (or any other datapump tool) to transfer the data

I don't know the size of your database, but I doubt it will take days to 
transfer it.


To speed up the process, turn forced writes off, try to keep the 
source/destination database on diferent disks and use local/embedded 
connection


see you !



Re: [firebird-support] Aliases and Windows Host - any

2014-05-26 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]
Hi !


Em 26/5/2014 21:17, Alan J Davies alan.dav...@aldis-systems.co.uk 
[firebird-support] escreveu:
 I'm trying to do that exactly but cannot make it work.
 I'm using Win7, FB 2.5.1 on host (server) and Win7 on client.
 The application is running in Delphi XE2  and works perfectly on host 
 client when I do the following (as I have since Delphi5):

 In the application folder I have the database, the application, plus a
 text file called App_Data.Txt with the following line:

 //AJD-SONY/C:/APPS/PJSMOULDINGS/ORDERS.FDB

 I load this file and set the database name to it - then open the
 database and it all works as it should.

 Now I try and replicate the example below from Helen et al.

 On the server I have this in my aliases.conf
 PJSMOULDINGS=C:\DATABASES\PJSMOULDINGS\ORDERS.FDB

 I also set PJSMOULDINGS as the DataBaseName in the Delphi app itself and
 this works on the server without loading App_Data.Txt
 Also if I set the database name to 'AJD-SONY:'+PJSMOULDINGS, it works.

 But not on the client.
 The error I get after 2-3 minutes is Unable to complete network request
 to host AJD-SONY. Failed to establish a connection .
 The program loads but database is unavailable.
 This is regardless of whether using a mapped drive or a shortcut.

 Any help would be appreciated. So far my own method has worked without a
 hitch, but sooner or later 
 Regards
 Alan

 Alan J Davies
 Aldis


I think you have the TCP/IP port 3050 closed on the host machine.

Check the windows firewall

In the first example you are not using a TCP/IP conection.

see you !








++

Visit http://www.firebirdsql.org and click the Resources item
on the main (top) menu.  Try Knowledgebase and FAQ links !

Also search the knowledgebases at http://www.ibphoenix.com 

++
Yahoo Groups Links

* To visit your group on the web, go to:
http://groups.yahoo.com/group/firebird-support/

* Your email settings:
Individual Email | Traditional

* To change settings online go to:
http://groups.yahoo.com/group/firebird-support/join
(Yahoo! ID required)

* To change settings via email:
firebird-support-dig...@yahoogroups.com 
firebird-support-fullfeatu...@yahoogroups.com

* To unsubscribe from this group, send an email to:
firebird-support-unsubscr...@yahoogroups.com

* Your use of Yahoo Groups is subject to:
https://info.yahoo.com/legal/us/yahoo/utos/terms/



Re: [firebird-support] Query optimization mystery

2014-05-13 Thread Alexandre Benson Smith ibl...@thorsoftware.com.br [firebird-support]

Em 13/5/2014 17:14, Kevin Donn kd...@msedd.com [firebird-support] escreveu:



Try this:

select * from

(

  select a.User_ID
  from Advocate

  where a.USER_ID=37

) as FILTER1,  supprog sp

Where sp.ADVOCATE_CODE=FILTER1.Advocate_Code

 This doesn't quite execute.  I cleaned it up to this:

select * from (
select a.User_ID, a.ADVOCATE_CODE
from Advocate a
where a.USER_ID=37
) as FILTER1,supprog sp
Where sp.ADVOCATE_CODE=FILTER1.Advocate_Code

It gets the same plan: PLAN JOIN (SP NATURAL, FILTER1 A INDEX 
(ADVOCATE_)).  But it has another problem, too:  ultimately I'm 
wanting to use this as part of a view, so I can't do my filtering 
inside the query.


Why isn't Firebird using the index?  Do the index statistics have 
anything to do with it?




Are the statistcs up to date ?

The two tables you mentioned has the same amount of records ? The 
statistics are quite diferent, so, or the number of rows are bery 
diferent or the index statistics are out of date.


Try this one:

select sp.STUDENTSEQ, a.User_ID
from supprog sp
join Advocate a on sp.ADVOCATE_CODE=a.Advocate_Code+0
where a.USER_ID=37

see you !