Announcement

Collapse
No announcement yet.

Tabelle in sql server 2000

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

  • Tabelle in sql server 2000

    Procedure ........ Stueckliste erzeugen
    var
    FileName : string
    begin
    FileName := MaskEdit1.Text;
    ADOConnection1.Connected := True;
    ADOQuery1.SQL.Clear;
    with ADOQuery1.SQL do
    begin
    ADD(Create Table FileName('); ????????FileName??????
    ADD('Artnummer char(10)Not Null,');
    *
    *
    etc

    ?????? Question: How must ADD(Create Table FileName(');
    be written to get a File with Name of MaskEdit1.Text
    and not a File with Name .....FileName.....

    (using Delphi 7 and SQL Server 20000)

    Thank you for your help.

    Josef

  • #2
    Hallo Josef,

    1. das ist ein deutschsprachiges Forum, benutzen wir also unsere Muttersprache

    2. Irgendwie habe ich das Gefühl, du baust da Stücklisten auf und willst dafür jeweils immer wieder eigene Tabellen neu anlegen? Wenn das stimmt, kann ich dir nur sagen - ganz, ganz, schlecht, dann hast du einen Fehler im Datenbankdesign.
    Wenn nicht, vergiss diesen Punkt.

    3. Ist doch eigentlich ganz einfach:
    ADD('Create Table ' + MaskEdit1.Text + ' (' );
    ADD('Artnummer char(10)Not Null,');
    ...
    ADD(')');
    ExecQuery;
    ...

    bye,
    Helmut

    Comment


    • #3
      1, I didn't see a problem with english-spoken posts.

      2, If you want to get the value of a edit into your DDL-String, use format

      Add(Format('Create Table ''%s''...', [MaskEdit1.Text]));
      But be aware of SQL-Injection!!

      3, The DB-Design isn't very good if partslist (Stücklisten) aren't millions/billions of entries, if you split every part list into a new table.

      4, I don't know a SQL-Server 20000 :-)

      Comment


      • #4
        Noch Probleme

        Besten Dank für Deine Hilfe.
        Diesmal auf Deutsch. (Habe mich in der Fragestellung wohl zu stark vom engl.Handbuch leiten lassen.

        Mit ADD(Format('Create Table "%s"...',[MaskEdit1.Text]));

        etc.

        bekomme ich nach Eingabe von TEST (als ein möglicher Stücklistennamen) in MaskEdit1 die Meldung:

        Der Name 'Test...' (Object) erhält mehr Präfixe als zulässig. Max.2 Präfixe zulässig.

        Sorry aber was heisst SQL-Injection ??

        NB. Wenn ich die Dots hinter "%s"...' weglasse erscheint die Fehlermeldung EOleException.
        Falsche Syntax in der Nähe von 'Artnummer"

        Gruss
        Zuletzt editiert von Josef Sulgen; 08.03.2008, 22:27.

        Comment


        • #5
          Originally posted by Josef Sulgen View Post
          Mit ADD(Format('Create Table "%s"...',[MaskEdit1.Text]));

          etc.

          bekomme ich nach Eingabe von TEST (als ein möglicher Stücklistennamen) in MaskEdit1 die Meldung:

          Der Name 'Test...' (Object) erhält mehr Präfixe als zulässig. Max.2 Präfixe zulässig.

          ...

          NB. Wenn ich die Dots hinter "%s"...' weglasse erscheint die Fehlermeldung EOleException.
          Falsche Syntax in der Nähe von 'Artnummer"
          Dir sollte doch wohl klar sein das "..." einfach nur heist das du den rest der Create Table-Anweisung selbst korrekt abschließen musst (entsprechend ersten post). "..." ist nur der Hinweis das da noch was kommt.

          Originally posted by Josef Sulgen View Post
          Sorry aber was heisst SQL-Injection ??
          SQL-Injection

          Comment

          Working...
          X