-
Content Count
69 -
Joined
-
Last visited
Posts posted by Nathan Wild
-
-
8 hours ago, Angus Robertson said:Build the OverbyteIcsXferTst.dpr sample which uses the OverbyteIcsFtpMulti, the sample has a simple menu with the various secure FTP options.
Angus
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).
-
2 hours ago, Attila Kovacs said:AV's are cool, because you have the address.
btw, did you look for pervasive/windows logs?
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?
-
On 3/30/2020 at 2:09 AM, Lars Fosdal said:Just to rule out any db access issues - have you tried logging into the database with the same user credential and connection settings as your ODBC connection uses and running the query manually?
Yes, I have tried this. Connections to the same ODBC datasource using ADO components work fine. It is only with FireDAC for some reason?
-
I am trying to upload files to an FTP server that uses explicit TLS. I have the connection working just fine in WinSCP with the encryption set to "TLS/SSL Explicit encryption". I am not sure how to accomplish this using ICS or Indy components (both appear to support this). Either I'm missing something or there does not appear to be very much in the comprehensive documentation department for ICS.
If anyone here has experience with the ICS TsslFTPClient component can give me a nudge in the right direction it would be much appreciated.
-
On 3/30/2020 at 2:09 AM, Lars Fosdal said:Just to rule out any db access issues - have you tried logging into the database with the same user credential and connection settings as your ODBC connection uses and running the query manually?
Yes, I have tried this. Connections to the same ODBC datasource using ADO components work fine. It is only with FireDAC for some reason?
-
4 minutes ago, David Heffernan said:No reason at all to suspect that multithreading is the issue here. You aren't likely to get good leads from people making random guesses. Hard debugging is the way forward.
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 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!
-
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
-
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
-
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?
-
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?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. -
3 hours ago, Lars Fosdal said:If FetchAll is not used, and there is more than the default row limit number of rows, RecordCount may show the same as the row limit (f.x. 50).
This means that if you use a for loop
for var n:= 1 to RecSet.RecordCount
do begin
// ... process
RecSet.MoveNext;
end;
You may only get the first 50 records, and not the actual number.
That could possibly lead to this situation where the RecSet is "unfinished".
It is safer to use
while not RecSet.EoF
do begin
// ... process
RecSet.MoveNext;
end;
which will fetch more chunks of 50 rows until all rows have been fetched - or use FetchAll 😛
3 hours ago, Lars Fosdal said:If FetchAll is not used, and there is more than the default row limit number of rows, RecordCount may show the same as the row limit (f.x. 50).
This means that if you use a for loop
for var n:= 1 to RecSet.RecordCount
do begin
// ... process
RecSet.MoveNext;
end;
You may only get the first 50 records, and not the actual number.
That could possibly lead to this situation where the RecSet is "unfinished".
It is safer to use
while not RecSet.EoF
do begin
// ... process
RecSet.MoveNext;
end;
which will fetch more chunks of 50 rows until all rows have been fetched - or use FetchAll 😛
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...
-
1
-
-
8 hours ago, braunbaer said:Maybe there is no Native Client installed?
I am connected to the master query in the master-detail relationship without issue. This would not work without the client?
-
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...
-
-
2 minutes ago, Attila Kovacs said:Maybe accidentally set to async mode?
Possibly... Where is this set?
-
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!!
-
Remy: Thanks very much! With your code, I can see all top level windows flicker a little when the broadcast call is issued, but my shell still does not recognize the new variable even after the process terminates. Closing and opening a new shell does work, but this is not what I'm after... Starting to thing that this is not possible with Windows?!
-
3 hours ago, David Heffernan said:Don't think that's true. That's the point of the broadcast message. The shell updates its environment and uses that when creating new processes.
This is correct... If I run my process to set the variable, then spawn a new shell it works... So it seems like it's just the broadcasting part of this process that doesn't work?
-
Stéphane Wierzbicki: That post was helpful, but seems to be pretty much what I am doing? I changed my code to use SendMessageTimeOut(), which seems to make all the top level windows that I have open flash a little, but seems to leave my live environment otherwise untouched 😞
Dave Nottage: That too was very helpful, although all it really told me is that I am fighting a losing battle 😉
ICS FTP with TLS
in ICS - Internet Component Suite
Posted
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!