Welcome in industrial-IT !
For these technology, the best option is the 'AspenTech SqlPlus ODBC driver'.
That been said, you are talking about an endpoint on a fairly old IP21 server, so I suppose it is something like http://.../SQLPlusWebService/SQLplusWebService.asmx.
In that case, it is the SOAP wrapper around SqlPlus: you will not have to install the Windows ODBC driver... But you will still have to learn SqlPlus syntax.
In order to have more information about it, you can ask AspenTech, also you can install the SqlPlus client 'Aspen SqlPlus', and check the help file in
"C:\Program Files (x86)\AspenTech\InfoPlus.21\db21\code\ipsqlplus.chm"
EDIT: here is an example in c#, to list all records:
static void Main(string[] args)
{
const string SERVER_HOST = "SERVERHOST";
const string SERVER_URL = "http://{0}/SQLPlusWebService/SQLplusWebService.asmx";
const string SOAP12 =
"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"
+ "<soap12:Body>"
+ "<ExecuteSQL xmlns=\"http://www.aspentech.com/SQLplus.WebService/\">"
+ "<command>{0}</command>"
+ "</ExecuteSQL>"
+ "</soap12:Body>"
+ "</soap12:Envelope>";
const string SQLPLUS_COMMAND_ALLRECORDS =
"SELECT * FROM all_records";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
string.Format(SERVER_URL, SERVER_HOST));
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
request.ContentType = "application/soap+xml; charset=utf-8";
request.Method = "POST";
XmlDocument soapEnvelopeDocument;
soapEnvelopeDocument = new XmlDocument();
soapEnvelopeDocument.LoadXml(string.Format(SOAP12, SQLPLUS_COMMAND_ALLRECORDS));
byte[] bytes;
bytes = Encoding.UTF8.GetBytes(soapEnvelopeDocument.OuterXml);
request.ContentLength = bytes.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(bytes, 0, bytes.Length);
}
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// Display the status.
Console.WriteLine(response.StatusDescription);
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
// Display the content.
Console.WriteLine(responseFromServer);
// Cleanup the streams and the response.
reader.Close();
dataStream.Close();
response.Close();
}