Re: [firebird-support] Compatibility questions: Current release versus 1.5.3.4870
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
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)
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
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
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
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 ?
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
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
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 !