Data project added (previously Office)

This commit is contained in:
2021-05-14 13:17:39 +01:00
parent 53ccaf26e9
commit 19be985731
20 changed files with 4330 additions and 70 deletions
@@ -507,6 +507,8 @@ namespace Sarand.Net.Standard.Dbas.Base
String className = tableDfn.Name + "_Db";
List<String> primaryColumnNames = tableDfn.GetPrimaryColumnNames();
String identityColumnName = tableDfn.Columns.GetIdentityColumnName();
String identityColumnVariableTypeName = tableDfn.Columns.GetIdentityColumnVariableTypeName();
String identityColumnCastFromInt64 = (!identityColumnVariableTypeName.EqualsCI("Int64") && !identityColumnVariableTypeName.EqualsCI("long") ? "(" + identityColumnVariableTypeName + ")" : "");
// Class 'using's.
List<String> usingNamespaces = new List<string>(config.TableClass.Usings);
@@ -690,7 +692,7 @@ namespace Sarand.Net.Standard.Dbas.Base
if (!String.IsNullOrEmpty(identityColumnName))
{
// Execute single command to insert and query 'Scope_Identity' to retrieve Identity value.
file.WriteLine(tab3 + "_" + identityColumnName + " = Convert.ToInt32(dbCommand.ExecuteScalar());");
file.WriteLine(tab3 + "_" + identityColumnName + " = " + identityColumnCastFromInt64 + "Convert.ToInt64(dbCommand.ExecuteScalar());");
file.WriteLine(tab3 + "commandSuccess = (_" + identityColumnName + " > 0);");
}
else
@@ -710,7 +712,7 @@ namespace Sarand.Net.Standard.Dbas.Base
{
// Retrieve Identity value.
file.WriteLine(tab4 + "dbCommand.CommandText = \"SELECT Max(" + identityColumnName + ") FROM \" + TableNameFmt + \";\";");
file.WriteLine(tab4 + "_" + identityColumnName + " = Convert.ToInt32(dbCommand.ExecuteScalar());");
file.WriteLine(tab4 + "_" + identityColumnName + " = " + identityColumnCastFromInt64 + "Convert.ToInt64(dbCommand.ExecuteScalar());");
file.WriteLine(tab4 + "commandSuccess = (_" + identityColumnName + " > 0);");
}
else
@@ -380,7 +380,7 @@ namespace Sarand.Net.Standard.Dbas.Data
{
if (refresh) ClearTableDfns();
// Only populate table names and/or table schemas where not previously done.
if (tables.Count < 1 || tables.Exists(item => item.Columns.Count < 1))
if (tables.Count < 1 || tables.Exists(item => !item.HasColumns()))
{
// Use a single connection for table and schaema population.
using (DbConnection dbConnection = CreateConnection(true))
@@ -390,7 +390,7 @@ namespace Sarand.Net.Standard.Dbas.Data
PopulateTableNames(dbConnection);
foreach (DbDfnTable table in tables)
{
if (table.Columns.Count < 1)
if (!table.HasColumns())
{
PopulateTableColumns(dbConnection, table);
PopulateTableIndices(dbConnection, table);