Announcement

Collapse
No announcement yet.

SQL Server2000 Startwert

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

  • SQL Server2000 Startwert

    Wie kann ich in der "SQL Server 2000" Tabelle -TEST- den ID-Startwert auf einen höheren Wert setzen.
    Neuer Wert-->>Eingabe in MaskEdit1-Feld (zB.20080400)
    Aktivieren über -->Button2 (Übernehmen)
    Welche Befehlsgänge sind in Delphi 7 mit ADOQuery1 notwendig.
    Die laufende Nummer setzt sich aus dem Jahr zB. 2007 mit nachfolgendem Zähler zusammen (20070400; 20070401 etc.)
    Besten Dank für Eure Hilfe

  • #2
    Hi,

    versuchs mal mit SET IDENTITY_INSERT tablename ON

    dann kannst Du beim Insert einfach die ID mit angeben. Der Wert wird dann als höchster Identity-Wert gehandelt.

    Grüße

    Julia

    Comment


    • #3
      Test in bestehender Tabelle

      Danke für Deinen Typ; es fuktioniert schon teilweise:
      Das Problem mit dem ich nicht zurechtkomme ist der neue Startwert in der Form der Variablen Bestnr.

      Im Command Text von ADOConnection steht:

      SET IDENTITY_INSERT Artbestelltabelle ON;
      INSERT INTO Artbestelltabelle(Bestnummer,Datum;Status) Values (Bestnr,GetDate(),'0');
      SET IDENTITY_INSERT Artbestelltabelle OFF



      Im dazugehoerigen Programmteil steht:

      Procedure TForm37.Button2Click(Sender:TObject);
      var
      Bestnr: Integer
      begin
      with ADOCommand1 do begin
      Bestnr:=StrToInt(MaskEdit1.Text);
      ADOCommand1.Execute;
      end;
      end

      Die Fehleranzeige betrifft die Variable Bestnr die ich irgendwie falsch
      verwende (zB. Eingabe MaskEdit1=20080500)
      Siehst Du den Fehler?
      NB. Wenn ich im Command Text anstelle der Variablen Bestnr direkt die Zahl 20080500 einsetze funktioniert die Übergabe in die Tabelle unter SQL Server 2000.

      Comment


      • #4
        Wo setzt du denn den Parameter?

        with Adocommand1 do
        begin
        commandtext := Insert into Artbestelltabelle(Bestnummer, Datum, Status) Values (:Bestnr, Getdate, '0')';
        Parameters[0].value := Strotint(maskedit1.text);
        execute;
        end;

        Comment


        • #5
          Resulta ok

          Die richtige Zeichensetzung eingesetzt und es funktioniert. Besten Dank für die Infos.

          with ADOCommand1 do begin
          CommandText := 'SET Identity_Insert Artbestelltabelle ON;'+'Insert Into Artbestelltabelle'+'(Bestellnummer)'+'Values(:Best nr)'+'SET Identity_Insert Artbestelltabelle OFF';
          Parameters.ParamByName('Bestnr').Value := StrToInt(MaskEdit1.Text);
          Execute;

          Comment

          Working...
          X