Premiere commit - Omika

This commit is contained in:
2026-10-23 18:46:50 +02:00
commit 8ea76c1b24
2155 changed files with 984301 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
// Probe pour tester la récupération de l'identifiant auto-généré HFSQL
// après un INSERT réel dans une transaction.
// Écriture dans BATIK_TEST (base de test confirmée) avec référence unique E2E_PROBE_.
using System.Data.OleDb;
const string server = "127.0.0.1";
const int port = 4900;
const string user = "susana";
const string password = "123";
string BuildConnStr(string database) =>
$"Provider=PCSOFT.HFSQL;Data Source={server}:{port};Initial Catalog={database};User ID={user};Password={password}";
string reference = $"E2E_PROBE_{DateTime.Now:HHmmss}";
Console.WriteLine($"=== Test INSERT + LAST_INSERT_ID() (base BATIK_TEST) ===");
Console.WriteLine($" Référence unique: {reference}");
try
{
using var conn = new OleDbConnection(BuildConnStr("BATIK_TEST"));
conn.Open();
using var tx = conn.BeginTransaction();
// INSERT dans Intervention (IN_PKID auto-généré).
using (var cmd = conn.CreateCommand())
{
cmd.Transaction = tx;
cmd.CommandText = "INSERT INTO Intervention (IN_IDTypeIntervention, IN_Titre, IN_RefInterne, IN_Description, Archive, CreationDate, ModifDate) VALUES (?, ?, ?, ?, ?, ?, ?)";
cmd.Parameters.Add(new OleDbParameter { Value = 1 });
cmd.Parameters.Add(new OleDbParameter { Value = "Probe LAST_INSERT_ID" });
cmd.Parameters.Add(new OleDbParameter { Value = reference });
cmd.Parameters.Add(new OleDbParameter { Value = "Probe test" });
cmd.Parameters.Add(new OleDbParameter { Value = false });
cmd.Parameters.Add(new OleDbParameter { Value = DateTime.Now });
cmd.Parameters.Add(new OleDbParameter { Value = DateTime.Now });
int rows = cmd.ExecuteNonQuery();
Console.WriteLine($" INSERT exécuté, rows={rows}");
}
// Test LAST_INSERT_ID() dans la même transaction.
using (var cmd = conn.CreateCommand())
{
cmd.Transaction = tx;
cmd.CommandText = "SELECT LAST_INSERT_ID()";
var value = cmd.ExecuteScalar();
Console.WriteLine($" LAST_INSERT_ID() -> {(value is null || value == DBNull.Value ? "NULL" : value)}");
}
// Test MAX(IN_PKID) pour comparaison.
using (var cmd = conn.CreateCommand())
{
cmd.Transaction = tx;
cmd.CommandText = "SELECT MAX(IN_PKID) FROM Intervention";
var value = cmd.ExecuteScalar();
Console.WriteLine($" MAX(IN_PKID) -> {(value is null || value == DBNull.Value ? "NULL" : value)}");
}
// ROLLBACK pour ne pas laisser de données.
tx.Rollback();
Console.WriteLine(" ROLLBACK effectué (aucune donnée laissée).");
}
catch (Exception ex)
{
Console.WriteLine($" ERREUR: {ex.Message}");
}
Console.WriteLine();
Console.WriteLine("Probe INSERT + LAST_INSERT_ID() terminé.");