Announcement

Collapse
No announcement yet.

Suche Beispiel-Routine für INSERT in ORACLE-Datenbank

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Suche Beispiel-Routine für INSERT in ORACLE-Datenbank

    hallo,

    benötige dringend hilfe!

    wer kann mir eine routine aufzeigen, in der in eine ORACLE-Datenbank<BR>
    ein INSERT vorgenommen wird ?

    mfg

    ernst

  • #2
    Hallo du

    Also ich arbeite auch mit Oracle, habe aber spezielle Oracle Komponenten. Im Beispiel verwende ich eine OracleQuery = oqu

    dm_neu.oqu_powerschulungen.sql.clear;
    dm_neu.oqu_powerschulungen.sql.Add( 'insert into power.schulungen ' );
    dm_neu.oqu_powerschulungen.sql.Add('(ID, PNR, Dauer, bewertung) values');
    dm_neu.oqu_powerschulungen.sql.Add( '(''' + id + ''' , ' + '''' + personal + ''' , 0, ''nn'') ' );
    dm_neu.oqu_powerschulungen.Execute;

    Hab das einfach aus meinem Programm geklaut:
    zur Erklährung:
    id,personal sind var :string
    ich speichere als auf Id den Wert der auf Varialen Id liegt
    Das gleiche gilt für pnr
    Auf Dauer wird einfach ein Integer Wert gepeichert also 0
    und auf Bewertung 'nn' also ein String.

    Die Anführungszeichen sind etwas blöd, aber Delphi will das halt so
    ich hoffe ich konnte dir helfen
    Bis dann
    Eure Naus

    Comment


    • #3
      Hallo Ernst August,

      ich arbeite zwar nicht mit Oracle, sondern mit ADS von Extend Systems, aber ich bin sicher, dass die Syntax eines SQL-Inserts die gleiche ist.

      Folgendes Beispiel :

      Var sSQL : String;

      sSQL := 'Insert Into Kontakte (PID, HID, MID,KontaktArt, Datum, UserName, TimeStamp)' +CR+
      'Values ('+CR+
      sAct_PID+','+CR+
      sAct_HID+','+CR+
      sAct_MID+','+CR+
      ''''+sAct_KontaktArt+''''+', '+CR+
      DateToStreamLineSQL(dAct_BesuchsDatum)+', '+CR+
      ''''+DatenModul.AdsC_DC.UserName+''''+', '+CR+
      'CURRENT_TIMESTAMP())';
      AdsQY.Close;
      AdsQY.SQL.Clear;
      AdsQY.SQL.Add(sSQL);
      AdsQy.ExecSQL;

      Anmerkung: Ich definiere die SQL-Strings gern vor der eigentlichen Abfrage, um sie so einfach noch weiter verarbeiten zu können, z.B. in Fehler-Behandlungen. Du kannst den Inhalt von sSQL aber auch gleich in Ads.SQL.Add() unterbringen.

      Die vielen Hochkommas '''' stehen für ein Hochkamma ' entsprechend der Delphi-Syntax. Da in Delphi das Hochkomma für Anfang/Ende eines Strings reserviert ist, ist es notwendig, auf die etwas eigenartige Schreibweise zurückzugreifen, wenn man dem DB-Server mitteilen muß, dass ein Wert in Hochkammata steht.

      CR steht für Carrige/Return, ich die Definition ist:

      Const CR=#10+#13.

      Ist nicht notwendig, macht den String bei der Ausgbabe mit ShowMessage nur besser lesbar.

      sAct_PID, sAct_HID etc. sind Strings, die die Werte enthalten, z.B.

      sAct_PID := '1234'; // dies ist im Vorfeld zugewiesen
      PID ist das dazugehörige Datenbankfeld.

      DateToStreamLineSQL = eigene StringFunktion.

      Wenn Du weitere Fragen hast, maile: [email protected]

      Gruß

      Rüdige

      Comment

      Working...
      X