Skip to content

Latest commit

 

History

History
140 lines (113 loc) · 2.85 KB

File metadata and controls

140 lines (113 loc) · 2.85 KB

Getting Started with CSQLY

This guide will help you get started with CSQLY in your .NET application.

Installation

Package Manager Console

Install-Package CSQLY

.NET CLI

dotnet add package CSQLY

Basic Usage

Setting Up a Database Connection

using CSQLY.Core;
using CSQLY.Connectors;

// For SQLite:
var sqliteConnector = DatabaseConnector.Create(DatabaseType.SQLite, "Data Source=mydb.sqlite");

// For MySQL/MariaDB:
var mysqlConnector = DatabaseConnector.Create(
    DatabaseType.MariaDB,
    "Server=localhost;Database=mydb;User ID=user;Password=password;"
);

// For PostgreSQL:
var postgresConnector = DatabaseConnector.Create(
    DatabaseType.PostgreSQL,
    "Host=localhost;Database=mydb;Username=user;Password=password;"
);

// For SQL Server:
var sqlServerConnector = DatabaseConnector.Create(
    DatabaseType.SQLServer,
    "Server=localhost;Database=mydb;User ID=user;Password=password;Integrated Security=True;"
);

// For Oracle:
var oracleConnector = DatabaseConnector.Create(
    DatabaseType.Oracle,
    "Data Source=MyOracleDB;User Id=user;Password=password;"
);

Executing a Simple Query

// YAML query string
var yamlQuery = @"
select:
  columns:
    - id
    - name
    - email
  from: users
  where:
    active: true
    role: Admin
  orderBy:
    - field: name
      direction: asc
  limit: 10
";

// Parse the YAML and execute the query
var result = connector.ExecuteQuery(SQLYUtils.ParseYaml(yamlQuery));

// Process results
foreach (var row in result)
{
    Console.WriteLine($"ID: {row["id"]}, Name: {row["name"]}, Email: {row["email"]}");
}

Using the SQLYExecutor

For more control over execution:

// Create an executor
var executor = new SQLYExecutor(connector);

// Execute a YAML query
var result = executor.ExecuteYamlQuery(yamlQuery);

// Or execute asynchronously
var asyncResult = await executor.ExecuteYamlQueryAsync(yamlQuery);

Error Handling

try
{
    var result = executor.ExecuteYamlQuery(yamlQuery);
    // Process results
}
catch (SQLYParseError ex)
{
    // Handle YAML parsing errors
    Console.WriteLine($"Parse error: {ex.Message}");
}
catch (SQLYExecutionError ex)
{
    // Handle execution errors
    Console.WriteLine($"Execution error: {ex.Message}");
}
catch (SQLYConnectorError ex)
{
    // Handle database connection errors
    Console.WriteLine($"Connection error: {ex.Message}");
}
catch (SQLYError ex)
{
    // Handle other CSQLY errors
    Console.WriteLine($"CSQLY error: {ex.Message}");
}
catch (Exception ex)
{
    // Handle unexpected errors
    Console.WriteLine($"Unexpected error: {ex.Message}");
}

Next Steps