diff --git a/reference/SQL_MSSQL/SQL_MSSQL.upp b/reference/SQL_MSSQL/SQL_MSSQL.upp new file mode 100644 index 000000000..d3d5c16ac --- /dev/null +++ b/reference/SQL_MSSQL/SQL_MSSQL.upp @@ -0,0 +1,13 @@ +description "Using MSSQL interface\377"; + +uses + MSSQL; + +file + app.h, + database.sch, + app.cpp; + +mainconfig + "" = ""; + diff --git a/reference/SQL_MSSQL/app.cpp b/reference/SQL_MSSQL/app.cpp new file mode 100644 index 000000000..229988ce8 --- /dev/null +++ b/reference/SQL_MSSQL/app.cpp @@ -0,0 +1,53 @@ +#include "app.h" + +#include +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ + MSSQLSession mssql; + for(;;) { + String cs = "Driver={SQL Server Native Client 10.0};"; + Cout() << "Server:"; + cs << "Server=" << ReadStdIn() << ';'; + Cout() << "User (empty for trusted connection):"; + String h = ReadStdIn(); + if(IsNull(h)) + cs << "Trusted_Connection=Yes;"; + else { + cs << "UID=" << h << ';'; + Cout() << "Password:"; + cs << "PWD=" << ReadStdIn() << ';'; + Cout() << "Database (empty for default):"; + h = ReadStdIn(); + if(IsNull(h)) + cs << "Database=" << h << ';'; + } + if(!mssql.Connect(cs)) + Cout() << "Connect failed: " << mssql.GetLastError() << '\n'; + else + break; + } + SQL = mssql; + +#ifdef _DEBUG + mssql.SetTrace(); +#endif + + SqlSchema sch(MSSQL); + StdStatementExecutor se(SQL.GetSession()); + All_Tables(sch); + ODBCPerformScript(sch.Upgrade(), se); + ODBCPerformScript(sch.Attributes(), se); + + for(int i = 0; i < 10; i++) + SQL * Insert(TEST)(TEXT, String('A' + i, 1)); + + S_TEST tst; + Sql sql; + sql * Select(tst).From(TEST); + while(sql.Fetch(tst)) + Cout() << tst.ID << ", " << tst.TEXT << '\n'; +} diff --git a/reference/SQL_MSSQL/app.h b/reference/SQL_MSSQL/app.h new file mode 100644 index 000000000..b4228e477 --- /dev/null +++ b/reference/SQL_MSSQL/app.h @@ -0,0 +1,14 @@ +#ifndef _app_app_h +#define _app_app_h + +#include +#include + +using namespace Upp; + +#include +#define SCHEMADIALECT +#define MODEL +#include "Sql/sch_header.h" + +#endif diff --git a/reference/SQL_MSSQL/database.sch b/reference/SQL_MSSQL/database.sch new file mode 100644 index 000000000..8e9b09e2d --- /dev/null +++ b/reference/SQL_MSSQL/database.sch @@ -0,0 +1,4 @@ +TABLE_(TEST) + INT_ (ID) PRIMARY_KEY AUTO_INCREMENT + STRING_ (TEXT, 200) INDEX +END_TABLE diff --git a/reference/SQL_MSSQL/init b/reference/SQL_MSSQL/init new file mode 100644 index 000000000..4c3aa4abd --- /dev/null +++ b/reference/SQL_MSSQL/init @@ -0,0 +1,4 @@ +#ifndef _SQL_MSSQL_icpp_init_stub +#define _SQL_MSSQL_icpp_init_stub +#include "MSSQL/init" +#endif