stand-alone NT service using RAD studio2010 / Oracle - delphi

Is it possible to deploy a stand-alone dbexpress NT service using RAD Studio 2010 with Oracle as the database?

DBExpress uses external drivers for its database access. You would have to deploy the Oracle DBX driver with your service. You cannot compile it directly into the service executable (unless you place it in the executable's resources and then extract it at runtime before using DBX).

Related

Hosting RAD Server in IIS. EMS license not found

I have created a 32Bit RAD Server application and I wanted to host it in my local IIS Server. I followed the steps mentioned in here But when I try to call a webservice say http://localhost:8080/emsserver/EMSServer.dll/version I get the following error :
{"error":"Forbidden","description":"EMS license not found. To resolve this issue, install an instance of Interbase with an EMS license and configure emsserver.ini to connect to the licensed instance."}
What could have gone wrong here ?
Is there again another instance of interbase has to be installed ? I had installed the interbase along with the RAD Studio 10.2 set up. The error message also suggests to configure emsserver.ini. What configuration change does it require ?
My Development environment is :RAD Studio 10.2 Enterprise on Win 10 64bit machine. The InterbaseManager is 64-bit. The IBConsole shows Version Interbase 2017 Version 13.0.0.195.
Can someone help me to get this resolved ?
Thanks in advance.
As noted here, for a RAD Server production environment, you cannot use your license for the RAD Studio IDE nor a "normal" InterBase license. Instead, to be able to run RAD Server in production on either IIS or Apache, you must install a RAD Server deployment license into InterBase. Contact Embarcadero directly (or go through your local Embarcadero sales representative) to request your RAD Server deployment license — as of 10.2 Tokyo edition, it is now included at no additional charge for RAD Studio Enterprise or Architect licensees.
Procedurally, depending on your hosting environment, you will add your RAD Server deployment license to InterBase via its License Manager on Windows or via the command line on Linux: /opt/interbase/bin/LicenseManagerLauncher -i Console as discussed here. This presumes you have previously installed InterBase centrally to serve Identity and Access Management (IAM) purposes as well as to record resource data analytics by endpoint (built-in features of RAD Server's RESTful web application framework).
Most importantly, per your question, you must configure each RAD Server instance — via its associated configuration file (EMSSERVER.INI) — to look to this central/common IAM + data analytics database (aka, the "RAD Server Database") hosted in InterBase.
By default, the RAD Server Database is defined within the InterBase file "emsserver.ib" which serves to persist the devices, users, groups and data analytics for all connected RAD Server instances. In turn, the connection parameters required by each RAD Server instance are stored under the [Data] section of the associated EMSSERVER.INI configuration file as detailed hereunder:
[Data]
InstanceName=192.168.0.127/3050
Database=/etc/ems/emsserver.ib
UserName=sysdba
Password=masterkey
SEPassword=
;# SEPassword connects to an encrypted database
Pooled=
;# Set Pooled=0 to disable connection pooled, Pooled=1 to enable (default is 1).
PooledMax=
;# Set PooledMax=10 to limit maximum pooled connection (default is 50).
As exemplified above, the [Data] section within EMSSERVER.INI defines the connection parameters to the central RAD Server Database (powered by InterBase). The connection parameters needed to get started are:
InstanceName: The <IP_Address|Hostname>/<Port_Number> of the InterBase instance hosting the RAD Server Database.
NOTE: Multiple RAD Server instances (i.e., multiple physical installations on separate machines or docker containers as discussed here) can all use the same remote RAD Server Database backend (powered by InterBase) via this InstanceName setting.
Database: The database file (or its alias) served by the InterBase-powered InstanceName pointed to above. On the Windows OS, the default setting for Database is: C:\Users\Public\Documents\Embarcadero\EMS\emsserver.ib. On Linux, the default setting is: /usr/lib/ems/emsserver.ib
UserName and Password represent credentials for the RAD Server instance connecting to the InterBase-powered RAD Server Database (by default, respectively: sysdba and masterkey).
Moving on from there, the SEPassword parameter is used for connecting to an encrypted database. Going further, connection pooling (enabled {=1} by default in the absence of a value) may be explicitly set using the Pooled=1|0. Next, the maximum number of pooled connections from this RAD Server instance to the central/common RAD Server Database is determined by the PooledMax setting (which, otherwise, defaults to 50).
Finally, further information concerning development and deployment of web applications using RAD Server can be found in David I's Complete Guide to Embarcadero RAD Server.

Connect to a ODBC DSN installed on a server

I am developing an application in Delphi 10.2.3 which connects to a Firebird database installed on a machine running Windows 2016 Server. The application also connects to QuickBooks Online using a third party ODBC driver. Since this application must be accessed by 12+ users in my company, it will not be cost effective to purchase and install individual ODBC drivers for each user.
The provider of the ODBC driver has a version which can be installed on a server. Is it possible to configure an ODBC DNS connection on the server which I can access from network clients? If not, can anyone suggest a workaround.
Server vs Workstation ODBC driver usually has to do with licensing not connection method. It is always running on the same machine as the software using the connection.
Web application used by many users running on a server connecting through an ODBC driver = server licensed version of the driver.
User loading data into Excel on their computer through an ODBC driver
= client / workstation licensed driver.
Some databases, for example SQL Server, can do a database link through an ODBC driver. This is linking / exposing another database to querying from a host database server. This would allow you to share one server licensed driver. The clients would connect to the host database.
One such driver is DevArt's ODBC Driver for QuickBooks which has a help topic on creating a linked database and testing it in SQL Server Management Studio / SQL Server: Using in Microsoft SQL Server Management Studio (SSMS). Might not be applicable if each user needs to use different credentials for the QuickBooks connection.

Connecting HDFS with Visual Studio 2013

I have an asp.net application running on Visual Studio in Windows; my data is on Hadoop on Linux. How do I connect these? Is there any web service on Hadoop?
You may install hive and query through hive.
Use the System.Data.Odbc.OdbcConnection class with the Hive ODBC driver to query Hive tables in the HDInsight cluster.
Source: Using the Microsoft Hive ODBC Driver in a .NET client
Reference: Hadoop or Big Data for Microsoft .NET programmers and this

DBX Error in Delphi Berlin 64bit compiler: Driver could not be properly initialized. When connecting to a Oracle 12c DB Server

I got the stopper error below in my apps. I used Delphi Berlin 64bit compiler. And also used the dbxora.dll as dbxpress driver default from embarcadero. Connected to Oracle 12c DB server using TSQLConnection component.
DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path.
How can I fix this?
A DB Express driver is not always sufficient on it's own to connect to some data sources. For certain data sources (most of them in fact) you also require the client drivers for that data source, usually provided by the database vendor themselves.
Oracle is one of these.
As well as the DB Express driver you also need to install the Oracle Client software provided by Oracle. You also need to ensure that you install the correct version.
i.e. in your case since you indicate you are building a 64-bit application then you will need the 64-bit Oracle client.
If you (or your intended users) already have the 32-bit Oracle client installed then you might consider building your application as a 32-bit application instead, unless you absolutely need 64-bit capabilities.

Shipping SQL Server Express Edition with my Windows Service

I have created a windows service which interacts with SQL Server Express Edition. I want to ship this to my test machine which doesn't have any form of SQL Server installed.
Is there an easy way of shipping SQL Server Express Edition with my service? Is it possible to make this part of a Setup Project?
Thanks.
The Windows Service you created--I assume you wrote this as a Visual Studio project? If so, you can add the SQL Server 2005 Express Edition as a "Prerequisite" in the Setup, easy as pie... at least if you have VS 2008 or higher. Here's how.
(Making your own bootstrapper packages is also possible, but not exactly fun.)

Resources