Announcement

Collapse
No announcement yet.

Interbase

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

  • Interbase

    hallo,

    so nach langem Probieren, gebe ich es fast auf. Dank euerer Hilfe hier hab ich nun den anmeldenamen und Domain sieht so bei mir derzeit aus AZUBI\dlosse.

    so demnach erlaubt oder verweigert er den Zugriff.

    Nun bin ich aber nach dem Aufbau der Datenbank beim Punkt Benutzer in Datenbank finden bzw dann anlegen.

    MEIN SQL sah folgendermaßen aus

    Code:
    DBEdit1.Text := nutzername.Caption;
      IBSQL1.SQL.Clear;
      IBSQL1.SQL.Add('Select count(*) as "counter" from NUTZER where');
      IBSQL1.SQL.Add('NAME=:NAME');
      IBSQL1.ExecQuery;
    Leider hab ich keine Ahnung von Interbase. Achja ich nutze IB 6 und Delphi 6 Enterprise.

    DBEdit1.Text sollte :NAME sien zumindest beim Insert gehts aber beim Versenden nicht.

    Wäre mir lieb wenn mir einer helfen könnte. Bin Leider erst im 2. Lehrjahr.

    Gruß
    dlosse

  • #2
    1. Paramter muss auch mit einem Wert belegt werden
    2. Select-Abfragen müssen geöffnet werden.
    Code:
      DBEdit1.Text := nutzername.Caption;
      IBSQL1.SQL.Text := 'Select count(*) as counter from NUTZER where ';
      IBSQL1.SQL.Add('NAME=:NAME');
      IBSQL1.SQL.ParamByName('name').Value := nutzername.Caption;
      IBSQL1.Open;

    Comment


    • #3
      Hallo Markus,

      habe es vor paar Minuten auch rausgefunden durch ein Beispeil bei DelphiPr@xis

      nun sieht es so aus und es Funktioniert prinzipiell schon

      Code:
      //Prüfe ob User in DB steht ansonsten trag ihn ein
      Nutzer.Close;
      Nutzer.SelectSQL.Text := 'SELECT count(*) as COUNTER from NUTZER where NAME = '''+nutzername.Caption+'''';
      Nutzer.Open;
      if Nutzer.FieldByName('COUNTER').AsInteger = 0 then
      begin
        Nutzer.Close;
        Nutzer.SelectSQL.Text := 'INSERT INTO NUTZER (NAME) VALUES ('''+nutzername.Caption+''');';
        Nutzer.Open;
        end;

      Comment


      • #4
        -Die Werwendung von Parametern hat aber schon Vorteile
        -Warum Insert in.SelectSQL ?
        -Bei DML-Statements reicht .ExecSQL

        Comment


        • #5
          Originally posted by Markus Kinzler View Post
          -Die Werwendung von Parametern hat aber schon Vorteile
          -Warum Insert in.SelectSQL ?
          -Bei DML-Statements reicht .ExecSQL
          Weil ich kaum Ahnung mit Interbase habe.

          Hatte auch zwischendurch die IBSQL1 versucht zuverwenden nur hab ich halt kaum verstanden wie ich da das erzeugte Feld auslesen kann siehe Hauptbeitrag

          bringt dien code

          DBEdit1.Text := nutzername.Caption;
          IBSQL1.SQL.Text := 'Select count(*) as counter from NUTZER where ';
          IBSQL1.SQL.Add('NAME=:NAME');
          IBSQL1.SQL.ParamByName('name').Value := nutzername.Caption;
          IBSQL1.Open;
          also durch die zeile
          IBSQL1.SQL.ParamByName('name').Value := nutzername.Caption;
          werde es aber mal testen

          Comment


          • #6
            SQL.Close;
            SQL.SQL.Text := 'INSERT INTO NUTZER (NAME) VALUES (:NAME)';
            SQL.ParamByName('name').Value := nutzername.Caption;
            SQL.ExecQuery;
            So das Funktioniert mit dem Insert schonmal super Danke, wenn Select so ähnlich ist wäre das ja eignetlich schon alles gewesen.

            UPDATE:
            Code:
              SQL.Close;
              SQL.SQL.Text := 'SELECT count(*) as COUNTER from NUTZER where';
              SQL.SQL.Add('NAME = :NAME');
              SQL.ParamByName('NAME').Value := nutzername.Caption;
              SQL.ExecQuery;
            
              if SQL.FieldByName('COUNTER').AsInteger = 0 then
                ......
            Danke Markus, nun macht Interbase erstmal zumindest bissle Spaß
            Zuletzt editiert von Gast_1; 11.04.2008, 10:06.

            Comment

            Working...
            X