Force ADO (not ADO NET) to use older DLLs from app dir - ado

I have a problem after the last Windows update. Same as on:
https://answers.microsoft.com/en-us/windows/forum/windows_7-update/windows-10-update-kb4015217-windows-7-update/d6ee5ee8-a362-48fd-be1d-26a6b6526c34 (my application uses ADO, not ADO NET).
Is it possible to force ADO to use older DLLs from app dir. I have put the following files in my app dir:
msado15.dll,
msadomd.dll,
msadox.dll,
oledb32.dll.
And a redirection file
Project1.exe.Local
My test application is called Project1.exe.
I did not solve the problem. Does redirection work with ActiveX components (like ADO)? Maybe I should add other files?

Related

How to connect an existing, non-project, folder to subversion?

How can i connect a folder in Delphi Library path to a folder in Subversion?
Background
In another Delphi source-control IDE plugin, you can configure what they call "Global Mappings". This means that an arbitrary folder on your hard-drive can be mapped to a folder in source control:
This means that any amount of arbitrary folder in my Library path, i can automatically get the benefits of source control:
get latest
merge changes
history
right from the IDE. The folders just contain arbitrary amounts of source-code files.
That's fine for Delphi 5
That works fine for Delphi 5, but what about Delphi XE6, and their built-in subversion client?
How do i specify a arbitrary mapping between a folder on my hard-drive, and a corresponding repository and folder on the network/internet/cloud?
Update: 3/6/2015
Epocalipse just released their updated VssConneXion for XE6! (and XE7, and their SourceConneXion for the same). Finally, i get to use source control in Delphi again!
It really would be super if Bo...Imp...Co...Embarcadero included some documentation on how to use SVN from Delphi. In the meantime, this question goes unsolvable.
From the image you've provide that other version control is SourceSafe and that probably means Delphi is talking to SourceSafe using the MSSCCI interface.
That would suggest that since Delphi supports MSSCCI, it should also work with any Subversion plug-in that implements the MSSCCI interface.
So one option would be to use Google and search for such a plug-in, of which there are a few to choose from.
I know of at least one such plug-in which is Agent SVN since I'm the author of that plug-in. But unfortunately I can't tell you if it works with Delphi as I've never tested it with that IDE.
But as the plug-in works with several other MSSCCI IDEs I suspect there is a good chance that it will.

Debugging Dylibs from Delphi XEx (XE4)

Is it possible to debug Dylibs from Delphi, or is this functionality not included?
As I understand it, I should be able to:
1) Create a Host Application which loads up the Dylib that is deployed by Delphi
2) Set the "Host Application" in "Run -> Parameters..." to match this new application.
3) When firing up the debugger in Delphi, it should start the Host Application. The Host Application loads up the Delphi-generated Dylib. I should be able to hook onto an entry point from my Windows machine, and trace through the code.
Just like it works on Windows, but on a remote machine.
Unfortunately, Delphi does not seem to catch the execution of the Dylib at all. It is being loaded (and I've even gone out of my way to look through my entire machine to see if there were any other identically named Dylibs getting loaded by mistake), but Delphi takes no notice of the Dylib getting executed by the Host Process, and just waits for the Host to end.
Any solutions?
EDIT: I recently realized that XE4 can debug dylibs on Snow Leopard. So, load up an old version of OSX, if you've got one lying around.
Ok, here's the solution:
1) Switch over to Delphi XE5
1a) Wait for bitterness over upgrade price to subside. This may take a while. Consider waiting for XE6 to come out first.
2) XE5 Does track which libraries are loaded by an executable process, but it still fails to deploy the debugging symbols properly.
You will have to change a filename in your OSX output directory. This directory is located at "yourProjectFolder/OSX32/Debug". Build your project, and then rename "yourProject.rsm" to "yourProject.dylib.rsm". This is the name which Delphi is trying to deploy already, so you will not have to add the file to your Deployment Settings.
I'm hoping that there's a way to automate the renaming of this file (maybe the .dproj file can be hacked). If I can find one, I'll add it to this answer.
3) Goto 1a

AV in IDE when opening any project or creating new in Delphi 7

After many years of trouble-free use, Delphi 7 is now throwing an Access violation at address
40233A3E in module 'vclx70.bpl'. Read of address 0000021C.
When starting the IDE, the default empty project and unit/form appear and compile and run fine.
I'm developing Windows apps, running on Windows 7 (x64).
I haven't installed any new packages or tools in many, many months.
I stopped, dead in the water, unable to work.
Any suggestions other than a complete rip and re-install (which takes many hours...)
EDIT: I un-installed and re-installed Delphi 7. Now I'm getting Access violation in vcl70.bpl. I would have thought that uninstalling D7 would completely remove all of its libraries, etc... Are there folders that I should manually delete after uninstalling D7?
Problem fixed (and major machine rebuild averted)!
Gerrit Beuze of ModelMaker Tools suggested elsewhere:
Remove all .dsk (project desktop) files for the project you try to load, Temp remove all *.dst (desktop files) from C:\Program Files\Borland\Delphi7\Bin
After performing these steps, the problem appears to have been fixed.
A read at that low a memory address is typically a problem in a third-party component. However, you say you haven't installed anything new in months.
The other thing that's strange is that you're getting the error in vclx70, which is one of the CLX libraries. Are you doing anything using the CLX (leftover cross platform - Kylix) forms or dialogs?
If not, you might do a search in your source for QDialogs, QForms, or any of the other units in %PROGRAMFILES%\Borland\Delphi7\Source\Clx, and see if something mistakenly was added that you didn't intend that's pulling CLX into your project. If so, change it to the VCL version instead (by just removing the 'Q' from the front of the unit name in your source).
EDIT: You might try going into the registry (D7 would be HKCU\Software\Borland\Delphi\7.0) and temporarily changing the name of the delphiCLXide entry in Known IDE Packages to something else (put an underscore in front of the name or something). Then start the IDE. You should get an error message about Delphi being unable to load the package, and asking if you want to try and load it again in the future. Answer 'Yes', and let the IDE continue to load. Then try again with your project and see what happens.
The step above removes CLX temporarily from loading in the IDE designer. (Don't worry, you can just rename the key again to put it back if it's not the problem. If it doesn't come back, make sure the IDE didn't add an entry in the Disabled Packages entry; if it did, just remove it.)
If this works, you can open the project options (.DOF) file for your project, and remove the CLX libraries from the Packages list. This prevents it from being included when your project is loaded.
Once you've established whether the problem actually
My first suggestion would be to use XP Mode or another VM infrastructure to run such an old Delphi version on Windows 7 (I do it that way).
Another potential method is to use the compatibility settings in Windows 7 to set it to XP and to exempt the Delphi 7 process from DEP (data execution prevention) policies the system may otherwise impose. I've had some trouble with enabled DEP with older Borland IDEs and also VS 2003.

InstallAware 9 problem with Paradox DB and Delphi 2009

My project is on Delphi 2009, Paradox DB and Google Maps. The code is OK and the time right now is to build the project. This is the first time to do it. As I know there are two programs to create the setup file; InstallShield or InstallAware. Via InstallAware I did my first test but its fail and the problem is the DB, I could not run it after the setup. How can I make the DB work in setup file.
In my delphi project there is two part for DB connections;
the first one with; Query1--->DataScore1
the second one; Table1--->Datascore2
the root of delphi files is "Desktop\ttelekom\ttelekom.exe
the root of DB files is "C:\Program Files\Common Files\CodeGear Shared\Data\databasettelekom.db"
Here the picture of Delphi main form;
http://img267.imageshack.us/img267/5333/77714402.png
Thanks for all.
How are you accessing the database? If it's using the BDE, you have to install the BDE. There's a merge module you can add to your installation, by default in %CommonProgramFiles%\Borland Shared\BDE\ - read the bdedeploy.txt file you'll find there, along with bdeinst.txt.
If you're using another way to access the Paradox files (for instance, ODBC), you'll have to configure that instead.
asilloo, when you said "..As I know there are two programs to create the setup file.." that is not true, exist many options to create installers like wise, nsis, Inno-setup.
for you specific task i will you recommend Inno-setup, because is freeware, reliable, easy to learn and the script language used to create the installers is delphi.
to deploy your application do you need install the bde in client machine. check this sample using inno-setup.
Inno Setup Knowledge Base - HOWTO: Deploy BDE (Borland Database Engine)

Delphi exe, will it run with just BDE configuration?

I've taken over a legacy application and I have the exe created. If I can configure the BDE then in theory it should be possible to run this. Someone indicated that Delphi needs to be installed in order for the app to run. I'm unsure of that - it doesn't quite make sense to me as there is an exe file. Any input from Delphi experts would be appreciated.
Roddy
If the application uses the BDE then the BDE has to be installed before the exe can run. The BDE files are not linked into the exe.
A Delphi installation normally also installs the BDE. This might give the impression that Delphi has to be installed to run the exe, but that is not true.
According to the deployment licence you have to use something like InstallShield Express that comes with Delphi to create some setup for the BDE, but I might be mislead here. You may even try to google for a BDE installer or have a look at this question.
Your application should work without installting Delphi if it wasn't built to use runtime packages(BPL files).
If it was built to use runtime packages, you'll need to deploy them with your application. Since all delphi's runtime package are installed with Delphi, that may give the impression that installing delphi is required for the application to run, which is not the case.
You might however need to install delphi to retrieve the required BPL files.
BPL files are special DLL files that delphi can refers to instead of linking all code into the .Exe, making EXE files much smaller.
So if you manage to get the BDE up, create the right aliases in it, and get all required BPL(if any), the application should start up correctly.
1 last thing that might need to be deployed with your application is midas.dll. (If the application use, for exemple, Tclientdataset)
That's all I can think of for now...
It seems very awkward to me that Delphi needs to be installed to run your application. Maybe your application is build with runtime packages which means you have to include the bpl's the application depends on, but Delphi itself should not be needed.
You can test this yourself, just run the app on a computer without Delphi installed. When it gives an error about a bpl not found, you have to find that bpl and add it to the directory where your application is located.
Uwe has the answer here. if your application uses any of the data components provided by Delphi it will almost always require the BDE to be installed and other drivers if for example you are talking to Oracle then the Oracle OCI drivers must be installed.
You do not need Delphi to install the BDE but you need to find the BDE installer and have it installed. MANY programs out there use the BDE and not just Delphi since it was licensed by many companies.

Resources