You can use low level System calls to access a database. These examples demonstrate the use of the SqlDataReader. The example below shows the macro commands required to achieve this;
// Connection string (For windows login use Integrated Security=SSPI;):
var connectionString = "Server=172.01.02.03;Database=MYDB;User Id=chuck;Password=1234";
// Open database connection
var connection = OpenDatabaseConnection(connectionString);
// Update database with sql file
var sqlFile = "C:\\Temp\\myscript.sql";
print(ExecuteSqlScriptFile(connection, sqlFile));
// Close database connection
connection.Close();
function OpenDatabaseConnection(connectionString) {
try {
var connection = new System.Data.SqlClient.SqlConnection(connectionString);
connection.Open();
return connection;
}
catch (err) {
print("Connection Error: " + err);
}
return null;
}
function ExecuteSqlScriptFile(connection, scriptFile) {
if (System.IO.File.Exists(scriptFile) == false) {
print("Unable to open sql file " + scriptFile);
return;
}
try {
var scriptContent = System.IO.File.ReadAllText(scriptFile);
var cmd = new System.Data.SqlClient.SqlCommand(scriptContent, connection);
var result = cmd.ExecuteNonQuery();
}
catch (err) {
print("ExecuteSqlScripts error: " + err);
}
return result;
}
// Connection string (For windows login use Integrated Security=SSPI;):
var connectionString = "Server=172.01.02.03;Database=MYDB;User Id=chuck;Password=1234";
// Open database connection
var connection = OpenDatabaseConnection(connectionString);
// Query database
var cmd = new System.Data.SqlClient.SqlCommand("Select * from Equipment", connection);
var data = cmd.ExecuteReader();
// Display the first and second fields returned from the query (string and value)
// FieldCount=Field count, GetName=Column name, GetString=Field data, GetValue=Field value
if (data.FieldCount > 0) {
print(data.GetName(0) + ":" + data.GetName(1));
while (data.Read()) {
print(data.GetString(0) + ":" + data.GetValue(1));
}
}
// Close database connection
connection.Close();
function OpenDatabaseConnection(connectionString) {
try {
var connection = new System.Data.SqlClient.SqlConnection(connectionString);
connection.Open();
return connection;
}
catch (err) {
print("Connection Error: " + err);
}
return null;
}
The following examples use the OLEDB components that are normally supplied with MS Office. A separate install for these components to install on a machine without MS Office can be downloaded from the MSDN site.
The error produced when these components are missing is;
"'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine"