The VFP ODBC driver was included in MDAC 2.5 and earlier and preinstalled on Windows 2000 and earlier. In order to use it on Windows XP and later Windows versions, it has to be installed first. The Microsoft Visual FoxPro Driver 6.01.8629.01 is available for download at http://msdn.microsoft.com/en-us/vfoxpro/bb190233.aspx.
2016
The VFP ODBC Driver can be installed under 64-bit Windows but 64-bit applications cannot access VFP ODBC driver because it comes only in 32-bit version. For 32-bit applications under 64-bit Windows there's ODBC Data Source Administrator for the 32-bit ODBC drivers %systemdrive%\Windows\SysWoW64\odbcad32.exe (usually C:\WINDOWS\SysWOW64\odbcad32.exe).
2017
Important to remember that 64bits applications need to access 64 bits ODBC drivers.
This is the successor to Delphi... Delphi... Delphi web site which was created in 1996 when I started to learn Delphi after moving to Windows from CA-Clipper for DOS. For reasons beyond my control, it went offline in 2002.
Tuesday, October 26, 2010
Sunday, October 24, 2010
How to Migrate Delphi 5 from 1 PC to Another
What do you do when your PC crashes and you have to migrate your Delphi 5 + all installed VCL components to another PC ?
One possible solution is to restore all your folders to the replacement PC and then reinstall Delphi 5 + all the updates. Tedious but definitely workable but what if you have misplaced your original Delphi Install Disk ?
This is what I attempted to do :-
1. Copy the Delphi 5 folder to the new PC (for Win7 PCs, administrator rights must be given to this folder)
2. Copy VCL*50.bpl from WINSYS32 folder to the BIN folder on the target PC.
3. Launch D5 and all you will see is the Standard Tab with only the Frames Icon visible.
4. Click Component/Install Packages and manually add applet50.bpl and you will see that the Borland Control Applet has been installed. By doing so, you will still no additional tabs on icons but when you click File/New..., all the tabbed dialog box will now be complete :-)
5. Then add dcl3150.bpl (D1 compatibilty components) and voila dclstd50.bpl (Borland Standard Componets) is also automatically installed.
6. Repeat for all dcl*.bpl
More to come...
One possible solution is to restore all your folders to the replacement PC and then reinstall Delphi 5 + all the updates. Tedious but definitely workable but what if you have misplaced your original Delphi Install Disk ?
This is what I attempted to do :-
1. Copy the Delphi 5 folder to the new PC (for Win7 PCs, administrator rights must be given to this folder)
2. Copy VCL*50.bpl from WINSYS32 folder to the BIN folder on the target PC.
3. Launch D5 and all you will see is the Standard Tab with only the Frames Icon visible.
4. Click Component/Install Packages and manually add applet50.bpl and you will see that the Borland Control Applet has been installed. By doing so, you will still no additional tabs on icons but when you click File/New..., all the tabbed dialog box will now be complete :-)
5. Then add dcl3150.bpl (D1 compatibilty components) and voila dclstd50.bpl (Borland Standard Componets) is also automatically installed.
6. Repeat for all dcl*.bpl
More to come...
Installing Delphi 5 in Windows 7
Reinstall it in it's own directory that's not under Program Files. Writing there for non-admin users has been a no-no since WinXP (although not enforced there), and has been forbidden since the introduction of Vista.
Wednesday, September 29, 2010
Enhanced Run Time library for Delphi 7
By A.Bouchez on 2009, Sunday December 20,
Purpose of these files is to provide speed and bug corrections to the Run Time Library and the VCL of Delphi 7.
1. Copyright
Original Source code remains on following copyright:
Copyright (c) 1988, 2001 Borland Software Corporation
A.Bouchez disclaims copyright to the modifications made to the original code.
In place of a legal notice, here is a blessing (from SQLite3 licence):
May you do good and not evil.
May you find forgiveness for yourself and forgive others.
May you share freely, never taking more than you give.
Original Source code remains on following copyright:
Copyright (c) 1988, 2001 Borland Software Corporation
A.Bouchez disclaims copyright to the modifications made to the original code.
In place of a legal notice, here is a blessing (from SQLite3 licence):
May you do good and not evil.
May you find forgiveness for yourself and forgive others.
May you share freely, never taking more than you give.
2. Installation
These files are hacked low-level source code, extracted from the original Delphi 7 run time libray and VCL.Download the self-installing package according to your current Delphi 7 version.
In order to install them, you MUST have a true Delphi 7 installation in your PC (or at least the original Delphi 7 installation CD), then launch the SynopseRTL.EXE file. This file will check for the original Delphi 7 source files and ask for a destination folder. Keep the destination Directory name short (aka D:\Dev\Lib) for easy maintenability. Then launch syscomp.bat to compile the enhanced special System.dcu and SysInit.dcu files.
The expected file and date of the Delphi 7 Source files are September 2002, October 2002, or April 2004.
According to Borland/CodeGear/Embarcadero copyright, the original source files are needed: these installation packages only contain the diffs made to these files.
- for the command line compiler, change the dcc32.cfg -u flag content in the C:\Program Files\Borland\Delphi7\Bin directory into this: -ud:\dev\lib;"C:\Program Files\Borland\Delphi7\lib" or use a custom bat file file the proper -ud:\dev\lib command line to dcc32.exe
These files could be modified to enhance also newer version of Delphi, since the RTL files didn't change a lot until Delphi 2009 compiler version.
These files are not needed for the Synopse SQLite3 framework to compile. But with these modified files, the framework works even better.
If you don't want to hack your compiler, copy System.dcu and SysInit.dcu files into the source code directory of your project: the IDE will use it to build the executable.
Update: now the files were modified to run with Delphi 2007.
- deprecated Japan Nec computer bug prevention under Win95 is removed
- shortstring delete() copy() now use move() and not slow "rep movsb/movsd"
- borland memory manager is removed and replaced with windows heap manager: we recommend using FastMM4 explicitely for VCL applications (as Delphi 2009), and leave as it is for smaller executables (e.g. for LVCL; the windows heap manager is slower than FastMM4, but sufficient for GUI small apps)
- there is an optional integrated FastMM4 memory manager inside our getmem.inc, which can be enabled by undefining HEAPMEMMANAGER conditional in getmem.inc: this FastMM4 shares its memory for the same process with external .DLL (if both EXE and DLL are compiled with undefined HEAPMEMMANAGER conditional)
- some common functions implemented in asm: _Getmem, _Freemem, IOResult...
- very common internal basic methods rewritten or improved: TObject.NewInstance, TObject.InitInstance, TObject.InheritsFrom, TObject._AfterConstruction, TObject.GetDynaMethod (used a lot in the VCL), TObject.ClassName...
- on new multi-core CPU, avoid LOCK asm usage for strings and dynamic arrays if no TThread is used (default $define AVOIDLOCK): faster with high-end PC, since such a LOCK freezes all the cores and delay the code execution a lot
- record and object initialization and finalization rewritten for speed: _InitializeArray, _FinalizeArray, _InitializeRecord, _FinalizeRecord functions
- cached resourcestring (default $define LOADRESSTRINGCACHED)
- resourcestring can be translated on the fly with the global LoadResStringTranslate procedure pointer (this feature is used in the SQLite3i18n unit)
- cached widestring allocation (if the conditional $define CACHE_WIDESTRINGS is set): with Vista, the caching is always disabled, since this OS is much faster than the previous) but you must call explicitly InitWideStringOptimize to launch caching, in order to use the right heap manager (if you intend to use FastMM4 e.g.
- asm code: 'rep ret' optimization avoid modern CPU pipeline branch misprediction; see AMD64 document § '6.2 Two-Byte Near-Return RET Instruction', page 128
- asm code XOR reg32,reg32 + MOV reg8,* is changed to faster MOVZX reg32,*
- a special version is compiled with the LVCL define flag, for even smaller code; you can download the LVCL framework in LVCL.zip
- Linux/Kylix compatibility:
. can be compiled with the command-line compiler (tested with crosskylix)
. system codepage is fixed to ISO-8859-1: widestring is available with configuration like LANG=*.UTF-8, which is the standard nowadays for modern distros
- HexChars[] for fast 0..15 to '0'..'f' conversion
- Ansi*() functions use NormToLower[] and NormToUpper[]: call i18n unit and i18n*() functions for using current locale
- some common functions are faster than default Borland's implementation: CompareText() SameText() UpperCase() IntToStr() DecodeTime() DecodeDate() StrLen() StrComp() StrIComp() StrEnd()
- avoid use of slow PIC specific code or lodsb/stosb asm opcodes in asm for format() and such
- under Linux, avoid variants usage for speed up and code size
. create a TPrinterNew instance instead of a TPrinter
. access to color/black&white or duplex mode e.g. with PrinterNew function
. we have to subclass TPrinter inside this unit, because Borland made the key properties and methods of the class private
The expected file and date of the Delphi 7 Source files are September 2002, October 2002, or April 2004.
According to Borland/CodeGear/Embarcadero copyright, the original source files are needed: these installation packages only contain the diffs made to these files.
In order to use the enhanced files, you must change your Delphi settings, and place the new files to be look up by the Delph compiler BEFORE the default ones (in C:\Program Files\Borland\Delphi7):
- for the IDE, make sure that the new directory (e.g. D:\Dev\Lib) is the FIRST in all paths ("Library" tab of the global Options), before $(DELPHI)\Lib: a valid parameter is "d:\dev\lib;$(DELPHI)\Lib;$(DELPHI)\Bin;...." or "d:\Dev\Lib;$(DELPHI)\source\vcl;$(DELPHI)\Source\Rtl;...."- for the command line compiler, change the dcc32.cfg -u flag content in the C:\Program Files\Borland\Delphi7\Bin directory into this: -ud:\dev\lib;"C:\Program Files\Borland\Delphi7\lib" or use a custom bat file file the proper -ud:\dev\lib command line to dcc32.exe
These files could be modified to enhance also newer version of Delphi, since the RTL files didn't change a lot until Delphi 2009 compiler version.
These files are not needed for the Synopse SQLite3 framework to compile. But with these modified files, the framework works even better.
If you don't want to hack your compiler, copy System.dcu and SysInit.dcu files into the source code directory of your project: the IDE will use it to build the executable.
Update: now the files were modified to run with Delphi 2007.
3. System.pas enhancements
- included John O'Harrow version of move() fillchar() Pos() Val() and Int64 math - included Pierre Le Riche fast _LStrCmp() implementation- deprecated Japan Nec computer bug prevention under Win95 is removed
- shortstring delete() copy() now use move() and not slow "rep movsb/movsd"
- borland memory manager is removed and replaced with windows heap manager: we recommend using FastMM4 explicitely for VCL applications (as Delphi 2009), and leave as it is for smaller executables (e.g. for LVCL; the windows heap manager is slower than FastMM4, but sufficient for GUI small apps)
- there is an optional integrated FastMM4 memory manager inside our getmem.inc, which can be enabled by undefining HEAPMEMMANAGER conditional in getmem.inc: this FastMM4 shares its memory for the same process with external .DLL (if both EXE and DLL are compiled with undefined HEAPMEMMANAGER conditional)
- some common functions implemented in asm: _Getmem, _Freemem, IOResult...
- very common internal basic methods rewritten or improved: TObject.NewInstance, TObject.InitInstance, TObject.InheritsFrom, TObject._AfterConstruction, TObject.GetDynaMethod (used a lot in the VCL), TObject.ClassName...
- on new multi-core CPU, avoid LOCK asm usage for strings and dynamic arrays if no TThread is used (default $define AVOIDLOCK): faster with high-end PC, since such a LOCK freezes all the cores and delay the code execution a lot
- record and object initialization and finalization rewritten for speed: _InitializeArray, _FinalizeArray, _InitializeRecord, _FinalizeRecord functions
- cached resourcestring (default $define LOADRESSTRINGCACHED)
- resourcestring can be translated on the fly with the global LoadResStringTranslate procedure pointer (this feature is used in the SQLite3i18n unit)
- cached widestring allocation (if the conditional $define CACHE_WIDESTRINGS is set): with Vista, the caching is always disabled, since this OS is much faster than the previous) but you must call explicitly InitWideStringOptimize to launch caching, in order to use the right heap manager (if you intend to use FastMM4 e.g.
- asm code: 'rep ret' optimization avoid modern CPU pipeline branch misprediction; see AMD64 document § '6.2 Two-Byte Near-Return RET Instruction', page 128
- asm code XOR reg32,reg32 + MOV reg8,* is changed to faster MOVZX reg32,*
- a special version is compiled with the LVCL define flag, for even smaller code; you can download the LVCL framework in LVCL.zip
- Linux/Kylix compatibility:
. can be compiled with the command-line compiler (tested with crosskylix)
. system codepage is fixed to ISO-8859-1: widestring is available with configuration like LANG=*.UTF-8, which is the standard nowadays for modern distros
4. SysUtils.pas enhancements
- NormToLower[] and NormToUpper[] tables to fast character case conversion - TwoDigitLookup[] table for fast 0..99 to '00'..'99' conversion- HexChars[] for fast 0..15 to '0'..'f' conversion
- Ansi*() functions use NormToLower[] and NormToUpper[]: call i18n unit and i18n*() functions for using current locale
- some common functions are faster than default Borland's implementation: CompareText() SameText() UpperCase() IntToStr() DecodeTime() DecodeDate() StrLen() StrComp() StrIComp() StrEnd()
- avoid use of slow PIC specific code or lodsb/stosb asm opcodes in asm for format() and such
5. Classes.pas enhancements
- faster TReader.Read() and TCustomMemoryStream.Seek() - faster TList.Get(), TCollection.GetItem() and TStringList.Get()- under Linux, avoid variants usage for speed up and code size
6. Contnrs.pas enhancements
- faster TObjectList TComponentList TClassList Items[] read property7. ComCtrls.pas enhancements
- fix the VCL TDateTimePicker checkbox handling bug for Windows Vista8. Grids.pas enhancements
- fix Grid flickers with active theming - can use XP Themes for fixed cells if enabled9. Printer.pas enhancements
- allows raw customization of low level parameters:. create a TPrinterNew instance instead of a TPrinter
. access to color/black&white or duplex mode e.g. with PrinterNew function
. we have to subclass TPrinter inside this unit, because Borland made the key properties and methods of the class private
10. IniFiles.pas enhancements
- faster hash implementation (in asm) - round Hash buffer Size to a power of two (faster hashing calculation)11. TypInfo.pas enhancements
- under Linux, avoid variants usage for speed up and code sizeWhat’s new in Delphi XE
The 2011 release of Delphi is here and it is called Delphi XE. With hundreds of new features and enhancements, Delphi XE will help you build ultra-rich applications ultra-fast. With Delphi XE you’ll find new ways to get your work done faster, build higher quality apps, and take advantage of multi-tier and cloud. Take a look at the key new features of Delphi XE below. Then learn more by checking out the full feature matrix and Delphi documentation wiki. If you’re using Delphi 2009 or earlier, be sure to see new features introduced in Delphi 2007-2010 that you also get as part of Delphi XE.
Here are just a few of the features introduced in recent versions of Delphi that you also get when you upgrade Delphi XE.
Tools designed to help you get your job done fast and right the first time:
Delphi 2010 added new RTTI support and new compiler and language enhancements
Make the connection with more data and more application architectures
Rapidly build touch based GUI, tablet, touchpad, and kiosk applications or easily upgrade existing applications UIs with little or no additional coding.
Support more Windows desktops without worrying about the specific Windows API details of each version and support users worldwide with Unicode throughout the development environment and improved language support.
Expanded Multi-Tier Development with DataSnap
DataSnap has been updated with:- New wizards for creating server applications and client modules
- Support for JavaScript, REST and HTTP and HTTPS transport protocols
- Process communication streams with encryption and compression filters
- User roles for authentication
Powerful Integrated Tool Chest
Streamline your process so you spend less time managing and more time coding- AQTime Standard profiling tools to identify issues so you can deliver ultra-high performance apps
- CodeSite Express logging tools and enhanced debugging for building quality applications
- Software IP*Works component suite for Internet app development with advanced IP communications protocols
- Advanced difference engine with the Beyond Compare Text Compare
Cloud Computing
Delphi XE makes it easy to work with cloud services and to deploy applications to the cloud.- Components for working with Windows Azure simple data storage including blobs, queues and tables
- Easy deployment to Amazon EC2 cloud servers to gain the benefits of cloud availability and scalability
Subversion integration in the IDE
With Delphi XE you can easily use the popular Subversion version control system to manage source code revisions for your own code or among your team. Features include:- Integration into the project manager and history manager
- Support for common version control tasks like import, update, commit and show log.
- Difference and merge viewer
- Source code for the integration using the Open Tools API available as an open source project
Higher Productivity and code intelligence
Speed your day to day development tasks and get even more done in even less time with enhancements throughout the Delphi IDE- Enhanced code generation from the modeler gives you higher quality code
- Generate Sequence diagrams from methods in your Delphi applications
- Additional code formatting options
- Improved search capabilities and IDE Insight
- New editor shortcuts for navigating between changed lines of code.
New tools to automate and augment your build process
Delphi XE gives you new tools to automate, manage and add additional functionality to your build process.- FinalBuilder automated build and release management toolset to define and manage repeatable build processes
- Formatter.exe for code formatting
- AuditsCLI.exe to run code audits and metrics
- GenDocCLI to automatically generate documentation
Language, Compiler and Library Enhancements
Continued improvements and enhancements to your application foundation.- Updates to the VCL, RTL, and STL
- Regular expressions for Delphi RTL
- Enhanced TStrings and Date/Time functionality
- Added support for the OpenTools API for internal tabs
- Improved compiler performance
ToolCloud-enabled and earlier version access
Get the power of XE with ToolCloud licensing options and access to earlier versions of software.- ToolCloud license provisioning and ToolBox user interface included with the purchase of ToolCloud network licenses
- Delphi XE includes access to licenses for older versions – Delphi 2010, 2009, 2007 and Delphi 7
Upgrading from version 2009 or earlier?
If you’re upgrading from Delphi version 2009 or earlier, you’ll find that Delphi XE gives you a lot more than just the new features in Delphi XE. Delphi XE builds on a solid foundation and a history of 15 years of innovation focused on helping you rapidly build high performance applications.Here are just a few of the features introduced in recent versions of Delphi that you also get when you upgrade Delphi XE.
Major features introduced in earlier versions | 2010 | 2009 | 2007 and 2007 R2 |
Build touch and gesture enabled apps | X | ||
Windows 7 support | X | ||
IDE Insight | X | ||
dbExpress connectivity to Firebird | X | ||
Unicode | X | ||
Ribbon controls | X | ||
Robust project management | X | ||
Major DataSnap upgrade | X | ||
Generics and anonymous methods | X | ||
dbExpress 4 | X | ||
Fast and reliable MSBuild build system | X | ||
Modern Windows Vista UI components | X | ||
VCL for the Web with AJAX | X |
Additional information on what was new and improved in version 2010
New and enhanced IDE features to radically reduce development timeTools designed to help you get your job done fast and right the first time:
- IDE Insight for instant access to all IDE features, settings and components “at your fingertips” without searching through menus and dialogs
- Integrated Code Formatter automates consistent coding styles with less work
- Debug Data Visualizers make sense from cryptic debug data by displaying in easy to read formats such as strings, date and time values
- Debug Thread Control for freezing, thawing and isolating threads; and setting breakpoints for selected threads so you can track down problems faster
Delphi 2010 added new RTTI support and new compiler and language enhancements
- RTTI support for exposure of Methods, Fields, and Properties to support dynamic invocations and increase reflection capabilities
- Enhanced Object-oriented file and directory IO classes for simplified file processing
- Custom attribute support for most code elements - types, fields, properties, methods and parameters
- Enhanced TStringBuilder for easier and faster string concatenation and manipulation
- Enhanced generics with full RTL list and collection support
- Background compilation so you can continue working while you compile
Make the connection with more data and more application architectures
- Firebird database connectivity
- Updated drivers for Microsoft SQL Server, Oracle and MySQL
- DataSnap callbacks, filtering, HTTP, REST and JSON support
Rapidly build touch based GUI, tablet, touchpad, and kiosk applications or easily upgrade existing applications UIs with little or no additional coding.
- Integrated gesturing framework with multi-OS support for Windows 7, Vista, XP, and 2000
- Gesture Designer enables full control of all gesture design and interaction
- Interactive multi-touch gestures for panning, zooming and rotating (requires multi-touch enabled OS)
- TTouchKeyboard a virtual keyboard
- 30+ standard gestures for panning, zooming, rotating and create your own
Support more Windows desktops without worrying about the specific Windows API details of each version and support users worldwide with Unicode throughout the development environment and improved language support.
- Theme Aware - VCL controls are optimized to take advantage of the theming capabilities of XP, Vista and Windows 7
- Fully Unicode enabled throughout to seamlessly handle worldwide data, databases, and user interfaces
- Access Windows 7 APIs, including Direct2D that allows easier rendering, better performance, and excellent quality output
- Easily switch between English, German, French and Japanese translations for IDE menus and dialogs, compiled units, resources, and source code
Thursday, June 10, 2010
How to get Delphi 7 to work in Windows 7 ?
CCH : Quoted verbatim from http://weblog.hansotten.com/?p=833
As you can see in this blog, I recently started programming again in Pascal, eh, Delphi Object Pascal. The version I use (since it is the last version close to traditional Windows programming) is version 7.
The best version to use is the version that floats around as Delphi 7.2 Second Edition (search a torrent site) which is a trimmed and bugfixed small package.
Of course this package runs fine on Windows XP. But how on Windows 7?
This is how I got it to work.
Installation
Fix Winhelp
Help does not function, a windows pops up telling “winhelp is not supported anymore on this Windows version, go to microsoft.com for a fix” .
The fix for Vista is already made, the Windows 7 fix will be here Real Soon Now.
Edit january 2010: Search ‘ Windows Help program (WinHlp32.exe) for Windows 7′ on microsoft.com, currently here , install that and you do not need the next trick.
So this will be fixed in the future, but for now it can be solved as follows.
As you can see in this blog, I recently started programming again in Pascal, eh, Delphi Object Pascal. The version I use (since it is the last version close to traditional Windows programming) is version 7.
The best version to use is the version that floats around as Delphi 7.2 Second Edition (search a torrent site) which is a trimmed and bugfixed small package.
Of course this package runs fine on Windows XP. But how on Windows 7?
This is how I got it to work.
Installation
- Make sure you run this as administrator, you will need the privs.
- Run the Delphi installer. Use defaults for the file locations, ignore the incompability warnings.
- Dont start Delphi 7 as it will complain when starting a project about unable to rename delphi32.$$$ to .dro in the /program files/delphi directories . And something about debug options requiring a change.
So there are access problems, as to be expected. Windows 7 is a lot more robust, so directories are better protected.
- Run this as administrator.
- Open the properties on c:/program files/delphixxx directory.
- On the first tab Clear the Read-only attribute and press Apply for all files including subdirectory.
- Open the security tab
- Give users (and admins if necessary) full access to c:/program files/delphixxx directory
Fix Winhelp
Help does not function, a windows pops up telling “winhelp is not supported anymore on this Windows version, go to microsoft.com for a fix” .
The fix for Vista is already made, the Windows 7 fix will be here Real Soon Now.
Edit january 2010: Search ‘ Windows Help program (WinHlp32.exe) for Windows 7′ on microsoft.com, currently here , install that and you do not need the next trick.
So this will be fixed in the future, but for now it can be solved as follows.
- Remove the Read-only attribute from winhlp32.exe and winhelp32.exe in c:/windows
- Set ownership of the winhlp32.exe file (properties, security tap, advanced) to administrators (and remember, you are logged on as admin!)
- change the security to full control
- rename winhlp32.exe to something like winhlp32old.exe just in case
- copy from a Windows XP system the files winhlp32.exe and winhelp.exe in c:\windows
Subscribe to:
Posts (Atom)
Welcome to Delphi... Delphi... Delphi
I have been a Delphi Developer since Delphi 3 when I finally decided on Delphi in 1996 as my programming language of choice for the Windows 32 environment. So what have I created with Delphi ?
Would you believe that I had single-handedly created a full ERP2 system comprising ERP+CRM where ERP=Sales Distribution+MRP+ Procurement Management+Planning & Production +Finacial Management + Human Resources Management System.
Since 15th February 2009, we have visitors from more than 60 countries including Malaysia, United States, Brazil, Italy, Australia, India, Turkey, Russian Federation, Spain, Indonesia, Hungary, South Africa, Germany, Mexico, Argentina, Singapore, Saudi Arabia, Colombia, Czech Republic, Canada, France, Croatia,Thailand, Bulgaria, Slovenia, Hong Kong, Poland, Sri Lanka, Chile, Japan, Austria, Ukraine, Azerbaijan, Ireland, Tunisia, Greece, Taiwan, Egypt, Bolivia, Paraguay, Iran, Islamic Republic , Morocco, Angola, Belgium, Portugal, Norway, Venezuela, United Arab Emirates, Algeria, Korea, Republic Of, Slovakia, Georgia, Lebanon, Macedonia, Sweden, Philippines, Vietnam, Dominican Republic
Would you believe that I had single-handedly created a full ERP2 system comprising ERP+CRM where ERP=Sales Distribution+MRP+ Procurement Management+Planning & Production +Finacial Management + Human Resources Management System.
Since 15th February 2009, we have visitors from more than 60 countries including Malaysia, United States, Brazil, Italy, Australia, India, Turkey, Russian Federation, Spain, Indonesia, Hungary, South Africa, Germany, Mexico, Argentina, Singapore, Saudi Arabia, Colombia, Czech Republic, Canada, France, Croatia,Thailand, Bulgaria, Slovenia, Hong Kong, Poland, Sri Lanka, Chile, Japan, Austria, Ukraine, Azerbaijan, Ireland, Tunisia, Greece, Taiwan, Egypt, Bolivia, Paraguay, Iran, Islamic Republic , Morocco, Angola, Belgium, Portugal, Norway, Venezuela, United Arab Emirates, Algeria, Korea, Republic Of, Slovakia, Georgia, Lebanon, Macedonia, Sweden, Philippines, Vietnam, Dominican Republic