AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Semicolon im String -> Fehler bei Insert
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Semicolon im String -> Fehler bei Insert

Ein Thema von DaCoda · begonnen am 26. Mai 2024 · letzter Beitrag vom 28. Mai 2024
 
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
169 Beiträge
 
Delphi 12 Athens
 
#4

AW: SQL Semicolon im String -> Fehler bei Insert

  Alt 26. Mai 2024, 17:10
Die Routine sieht so aus:

Code:
function TfrmBackupRestore.GetSqlVersion: string;
begin
  Result := 'Unbekannt';
  try
    with qryData.SQL do begin
      Clear;
      Add('SELECT sqlite_version()')
    end;
    qryData.Open;
    Result := qryData.FieldByName('sqlite_version()').AsString;
    qryData.CLose;
  finally

  end;
end;

procedure TfrmBackupRestore.DoBackup;
var
  SqlFile: TextFile;
  Loop: Integer;
begin
  AssignFile(SqlFile, SqlBackupFileName);
  Rewrite(SqlFile);
  if IOResult = 0 then begin
    tblData.Active := True;
    tblData.Open;
    try
      WriteLn(SqlFile, '-- --------------------------------------------------------');
      WriteLn(SqlFile, '-- Host: ' + DbName + SqLiteSqlExt);
      WriteLn(SqlFile, '-- Server-Version: ' + dmMain.SqlConnection.Drivername + ' Version : ' + GetSqlVersion);
      WriteLn(SqlFile, '-- Server - Betriebssystem: ' + TOSVersion.Name);
      WriteLn(SqlFile, '-- Generator: ' + FileVersion.strProductName + Space + strVersion + FileVersion.strFileVersion);
      WriteLn(SqlFile, '-- --------------------------------------------------------');
      WriteLn(SqlFile);

      WriteLn(SqlFile, '-- Exportiere Datenbank - Struktur für Mediathek');
      WriteLn(SqlFile, '/*!40000 CREATE DATABASE if not EXISTS Mediathek */;');
      WriteLn(SqlFile);

      WriteLn(SqlFile, '-- Exportiere Struktur von Tabelle Mediathek.Mediathek');
      WriteLn(SqlFile, 'CREATE TABLE if not EXISTS Mediathek(ID INTEGER PRIMARY KEY AUTOINCREMENT, Interpret VARCHAR not NULL, Album VARCHAR not NULL, Titel VARCHAR not NULL, FileName VARCHAR not NULL UNIQUE);');
      WriteLn(SqlFile);

      WriteLn(SqlFile, '-- Exportiere Daten aus Tabelle Mediathek.Mediathek');
      WriteLn(SqlFile, 'DELETE FROM Mediathek;');
      WriteLn(SqlFile, '/*!40000 ALTER TABLE "Mediathek" DISABLE KEYS */;');

      tblData.First;
      WriteLn(SqlFile, 'INSERT INTO Mediathek (' + QuotedStr('ID') + ',' + QuotedStr('Interpret') + ',' + QuotedStr('Album') + ',' + QuotedStr('Titel') + ',' + QuotedStr('FileName') + ') VALUES');

      Caption := tblData.RecordCount.ToString;
      for Loop := 0 to tblData.RecordCount - 2 do begin
        WriteLn(SqlFile, '(' + tblDataID.AsString + ',' + QuotedStr(tblDataInterpret.AsWideString) + ',' + QuotedStr(tblDataAlbum.AsWideString) + ',' + QuotedStr(tblDataTitel.AsWideString) + ',' + QuotedStr(tblDataFileName.AsWideString) + '),');
        tblData.Next;
        Application.ProcessMessages;
      end;
      tblData.Last;
      WriteLn(SqlFile, '(' + tblDataID.AsString + ',' + QuotedStr(tblDataInterpret.AsWideString) + ',' + QuotedStr(tblDataAlbum.AsWideString) + ',' + QuotedStr(tblDataTitel.AsWideString) + ',' + QuotedStr(tblDataFileName.AsWideString) + ');');

      WriteLn(SqlFile, '/*!40000 ALTER TABLE "Mediathek" ENABLE KEYS */;');
      WriteLn(SqlFile);

      WriteLn(SqlFile, '-- Exportiere Struktur von Tabelle Mediathek.TempData');
      WriteLn(SqlFile, 'CREATE TABLE IF NOT EXISTS TempData (ID INTEGER PRIMARY KEY AUTOINCREMENT, OrgId INT NOT NULL UNIQUE, FileName VARCHAR NOT NULL UNIQUE);');
      WriteLn(SqlFile);

      WriteLn(SqlFile, '-- Exportiere Daten aus Tabelle Mediathek.TempData');
      WriteLn(SqlFile, 'DELETE FROM TempData;');
      WriteLn(SqlFile, '/*!40000 ALTER TABLE "TempData" DISABLE KEYS */;');
      WriteLn(SqlFile, '/*!40000 ALTER TABLE "TempData" ENABLE KEYS */;');
    finally
      CloseFile(SqlFile);
    end;
    tblData.Close;
    tblData.Active := False;
  end else begin
    ErrorDialog('Die Sicherungsdatei: ' + SqlBackupFileName + CRLF + 'konnte nicht angelegt werden !');
  end;
end;
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz