-
Content Count
69 -
Joined
-
Last visited
Everything posted by Nathan Wild
-
Update: I was able to get the OverbyteIcsXferTst aplication working and have implemented the mechanics of it in my own application. It build fine and seems to be correct but I'm getting an exception due to missing libeay32.dll. I understand this is part of the SSL layer and I'm sure I can find this DLL somewhere. What I am curious about is why their test application runs without this error and mine won't? Thought I would reply here in case someone with more Overbyte experience can chime in, Thanks to everyone who has offered assistance so far.
-
I recently deployed a new build of an application which has been running in the wild for some time now. For some reason this build triggers an access violation in one of the DLLs that the ODBC connection to our database uses. The only difference I can think of is that this version of the application was built with 10.1 Berlin and the previous was with 10-Seattle. The code up to and including where the exception is thrown has not changed. Anyone have even an idea how to troubleshoot this? More details: - The exception is in w3odbci.dll, part of Pervasive SQL's ODBC client. - It is thrown when I am trying to open a very simple query with one parameter (SELECT Password FROM table WHERE UserID=:USERID) - If I bypass this query, the same exception is thrown when I tries to open any other query Any help appreciated!
-
Progress... With a little fiddling, the sample application will log on succesfully! Still can not transmit files though. I am getting a PORT command error. 17:06:42:299 > PORT 192,168,0,108,218,81 17:06:42:351 < 500 Illegal PORT command. 17:06:42:352 Upload Failed: 500 Illegal PORT command.
-
Interesting... I grabbed it right from the site yesterday and it was version 858. I see there is a version 864 there that I somehow managed to miss. I will look into this sample application and let you know how I fare. Thank you so much!
-
Thanks very much for the suggestion. This demo application does not appear to be in the samples provided with ICS? There is an FtpDemos\OverbyteIcsFtpMulti and SslInternet\OverbyteIcsSslFtpTst... The latter seems to be what I'm after, I just don't know what to tell it do. I am able to connect, but I'm getting and error like '500 Illegal PORT command.' or '522 Data connections must be encrypted.' (active and passive mode respectively).
-
Indeed... having the address is nice, except it's an address inside someone else's code 😞 And yes, I did look on the Pervasive logs. Nothing at all of any use. The PvSQL DLL is not catching this exception either. So frustrating!!
-
Update: I pulled the last working version of my application out of version control and rebuilt it with Berlin (previous was Seattle). The original Seattle build works fine on the affected computers. The new build - with no changes other than rebuilding it in Berlin - exhibits the same access violation. Any idea what could have changed that would trigger this exception in a 3rd party DLL?
-
Yes, I have tried this. Connections to the same ODBC datasource using ADO components work fine. It is only with FireDAC for some reason?
-
Yes, I have tried this. Connections to the same ODBC datasource using ADO components work fine. It is only with FireDAC for some reason?
-
Agreed... I am just not sure how to approach debugging an access violation that is coming from an external library like that 😞
-
This is not a multithrreaded application. Or at least my application is not. Is suppose it is possible the ODBC interface is for some reason?
-
I am at a loss to explain this, but it feels like I am missing something obvious so I thought I would try here... If I have a query that does a simple select * with two parameters it works properly. If I modify the underlying table with another query, and then attempt to call .Refresh() or to activate and deactivate the select query I get a FireDAC ODBC error stating that SQLBindParameter has not been called for parameter #4. Firstly, there are only two parameters. Secondly, I don't ever call SQLBindParameter on anything. If I clear the SQL, and reset it, then reassign the parameters, it works fine? The exact error message is: [FireDAC][Phys][ODBC][Pervasive][ODBC Client Interface][LNA][Pervasive][ODBC Engine Interface]SQLBindParameter has not been called for parameter #4. Sample code: fdquery.Active := FALSE; fdquery.SQL.Clear(); fdquery.SQL.Add('SELECT * FROM MyTable WHERE Key1=:KEY1 AND Key2=:KEY2;'); fdquery.ParamByName('KEY1').AsString = 'value1'; fdquery.ParamByName('KEY2').AsString = 'value2'; fdquery.Active := TRUE; // This works fine. If I then execute an "INSERT INTO MyTable" query which generates data in [MyTable], and attempt to refresh the original query. I get the above error. If I set Active := FALSE and then back to TRUE again, I get that error. The only thing that seems to work is to clear and re-add the SQL, reassign the parameters, and then reactivate it. Questions: 1) Why is this error occurring at all? 2) Why is it coming up with parameter 4 when there are only two parameters to begin with?!
-
Does anyone have a copy of 10.3.1 that they can build that test project in and send it back to me? I am 99.9% sure that you can not connect to ODBC datasources in the community edition. It is Enterprise-only functionality now 😞
-
UPDATE: I created a stand-alone MS-Access database for use with the above test application and the bug does not manifest. Could it be problem specific to my ODBC driver? If so, any idea how to even troubleshoot that?
-
Bumping this one as I am still encountering this issue. I have been able to work around it up to now, but I have a circumstance in my current project where I REALLY need what I think is a simple master/detail relationship to work properly. Situation is this: 1) I have master data in one table 2) I have detail data in another table 3) Detail data is related to the master table through a GUID (stored as a string field). 4) There are either 0 or exactly 1 detail record for every master record in the table 5) I have a master FDQuery with SQL="SELECT * FROM MASTER" this works fine. 6) I have a detail FDQuery with SQL="SELECT Field FROM MASTER WHERE GUID=:GUID. MasterSource is set to the datasource for the master query, MasterFields is set to GUID When I open both queries it works perfectly until I try to move to the next record of the master dataset or to refresh it. Then I get "[FireDAC][Phys][ODBC][Pervasive][ODBC Client Interface][LNA][Pervasive][ODBCE Engine Interface]SQLBindParameter has not been called for parameter #2'" Sample project that reproduces this: https://www.dropbox.com/s/ol9us4i71my3gm7/ClientTest.zip?dl=0
-
FireDAC Client / Server (ODBC) Add-on web/ESD installer?
Nathan Wild posted a topic in Delphi IDE and APIs
I recently upgraded my computer and moved from 10-Seattle to 10.1-Berlin. Everything looked fine and dandy, until I went to build my first project. I am missing the FireDAC.Phys.ODBC stuff entirely. Upon further research it looks like with Berlin this is an add-on. I have a license serial # for this, but I can not for the life of me figure out how to install it?! Embarcadero phone support blew me off (our support subscription is lapsed, so that's fair, I suppose). The email I sent DID get through to a person, but the instructions they gave me (pick "Upgrade" on Rad Studio in Apps & Features in the Windows Control Panel) does not work? The only option I have there is "Modify" and it is greyed out. The person I spoke to did hint that this may be because I used the web/ESD installer instead of the ISO installer. I have two questions: 1. Where can I get a web/ESD installer for the FireDAC client/server add-on? 2. If FireDAC client/server stuff is no longer part of the Rad Studio package, what is the preferred method for accessing ODBC datasources in 10+ versions of Rad Studio? 1:03 I am awaiting word from our account rep, but as I am currently dead in the water and unable to build anything, I thought I'd try here. Thanks for any help ANYONE can offer. -
FireDAC Client / Server (ODBC) Add-on web/ESD installer?
Nathan Wild replied to Nathan Wild's topic in Delphi IDE and APIs
Agreed... Makes it rather hard to justify upgrading 😞 In case anyone is curious, I was able to solve my problem after getting an email back from our sales rep who was finally able to track down an engineer at Emb. The solution was exactly as simple as I was expecting it to be: 1) Install the license code in the license manager 2) Run Tools | Manager Platforms from within the IDE 3) Check off boxes for the add-on 4) Wipe hands on pants -
FireDAC Client / Server (ODBC) Add-on web/ESD installer?
Nathan Wild replied to Nathan Wild's topic in Delphi IDE and APIs
Thanks for your reply. I understand this moving forward. However... I have this working on my laptop in 10.1, so there MUST be some way to do it at least up to that release? There must be an ESD installer or something somewhere? -
FireDAC / SQL Server "Connection is busy with results for another hstmt"
Nathan Wild posted a topic in Databases
For reasons I can not explain, I am getting a [FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt exception when attempting to connect to one of the queries in my application. Same code works properly connecting to the same database from another workstation, and the same code can connect to another database from workstation that exhibits the issue?! The query is the detail in a master-detail relationship, if that matters? I have this application running in half a dozen environments and it works everywhere but here? Any ideas what to check for? Any or all guidance appreciated!! -
FireDAC / SQL Server "Connection is busy with results for another hstmt"
Nathan Wild replied to Nathan Wild's topic in Databases
Mr. Fosdal... If ever a random Canadian walks up and high-fives you at a conference of something, it is me... I have no explanation of WHY, but even though my query was set to fmFetchAll, simply adding a call to the FetchAll() method fixed this issue. Thanks so much, I would never have thought to try this... -
FireDAC / SQL Server "Connection is busy with results for another hstmt"
Nathan Wild replied to Nathan Wild's topic in Databases
I am connected to the master query in the master-detail relationship without issue. This would not work without the client? -
FireDAC / SQL Server "Connection is busy with results for another hstmt"
Nathan Wild replied to Nathan Wild's topic in Databases
Thanks... I thought of the fetch mode also... I have FetchOptions.AutoFetchAll set to afAll, and have tried FetchOptions.Mode as fmAll or fmOnDemand, with the same result!? There are no BLOB fields in the dataset... -
FireDAC / SQL Server "Connection is busy with results for another hstmt"
Nathan Wild replied to Nathan Wild's topic in Databases
ResourceOptions.CmdExecMode is set to amBlocking, not async... Any other ideas? -
FireDAC / SQL Server "Connection is busy with results for another hstmt"
Nathan Wild replied to Nathan Wild's topic in Databases
Possibly... Where is this set? -
This can not possibly be as complicated as it seems... I want to set an environment variable from within my application that persists after it terminates. I have tried using SetEnvironmentVariable() and then SendMessage() to broadcast the change, to no avail... I found an old post with the following function which seems like it SHOULD do what I want - but no matter what my environment is not touched. function SetGlobalEnvironment(const Name, Value: string; const User: Boolean = True): Boolean; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; begin with TRegistry.Create do try if User then { User Environment Variable } Result := OpenKey(REG_USER_LOCATION, True) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey(REG_MACHINE_LOCATION, True); end; if Result then begin WriteString(Name, Value); { Write Registry for Global Environment } { Update Current Process Environment Variable } SetEnvironmentVariable(PChar(Name), PChar(Value)); { Send Message To All Top Window for Refresh } SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); end; finally Free; end; end; Any help appreciated!