Recently, a post asked how to create an Actian / Pervasive PSQL database from the command line. PSQL on Linux has the DBMAINT utility but no such utility exists on Windows. I put some code together in C# that will create a database based specified parameters. The DTO Library will need to be added as a COM reference to the project. This is basic code but can be used as a basis for your own program. The code is:
using System; using DTOLib; namespace dtoTest { class Class1 { [STAThread] static void Main(string[] args) { //Code to create an Actian / Pervasive PSQL database using DTO. //Code written by Michael Beris string compName = null; string userName = null; string password = null; string dbname = null; string ddflocation = null; string datalocation = null; dtoDbFlags dbflags = DTOLib.dtoDbFlags.dtoDbFlagDefault; DTOLib.dtoResult result; if (args.LongLength < 1) { Console.WriteLine("Invalid options.\n"); Console.WriteLine("Usage: dtoDBN.EXE <computername> <username> <password> <dbname> <ddf location> <data location> <DBFlage>"); Console.WriteLine("NOTE: locations must be relative to the computer where the PSQL engine is running."); Console.WriteLine("DB Flags must be passed as integer in this example with these values: "); Console.WriteLine(" P_DBFLAG_BOUND = 1; (* bound database - must have P_DBFLAG_CREATE_DDF too *)"); Console.WriteLine(" P_DBFLAG_RI = 2; (*relational integrity *)"); Console.WriteLine(" P_DBFLAG_CREATE_DDF = 4; (*create ddf flag *)"); Console.WriteLine(" P_DBFLAG_NA = 2147483648; (*not applicable *)"); Console.WriteLine(" P_DBFLAG_DEFAULT = (P_DBFLAG_BOUND or P_DBFLAG_RI); "); return; } if (args.LongLength == 7) { compName = args[0].ToString(); userName = args[1].ToString(); password = args[2].ToString(); dbname = args[3].ToString(); ddflocation = args[4].ToString(); datalocation = args[5].ToString(); dbflags = (dtoDbFlags)Convert.ToInt32(args[6]); } Console.WriteLine("Create Pervasive Database using DTO and C#"); DtoSession mDtoSession = new DTOLib.DtoSession(); try { result = mDtoSession.Connect(compName, userName, password); if (result != 0) { Console.WriteLine("Error connecting to server. Error code:"); } else { //Create a Database name here. DtoDatabase db = new DtoDatabase(); db.Name = dbname; db.DdfPath = ddflocation; db.DataPath = datalocation; db.Flags = dbflags; result = mDtoSession.Databases.Add(db); if (result !=0) { Console.WriteLine(string.Format("Error creating the datbase ({0}). Error code: {1}", dbname, result.ToString())); } else { Console.WriteLine(string.Format("Database ({0}) created. ", dbname)); } result = mDtoSession.Disconnect(); Console.ReadLine(); } } catch (Exception e1) { Console.WriteLine(e1.Message.ToString()); } } } }