Autor Beitrag
D. Annies
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 08.02.10 19:43 
Hi, Delpher,

ich habe mal wieder eine Nuss! (Die anderen habe ich schon allein weggeräumt, aber diese ist zu schwer)

Ich will den noch in Klammern zu sehenden Code (der nämlich zweimal vorkommt) durch den Code aus SQL_Allg ersetzen. Leider bekomme ich zur Laufzeit die Fehlermeldung:

Typ für Feld F:\sch.dbf ist unbekannt

Code:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
procedure TForm4.SQL_Allg(tbl: TTable);
begin
  InputString := format('select * from %s where NAME LIKE ''F%%'' ', [tbl.tablename]);
  if InputQuery('SQL-Eingabedialog''Eingabe:', InputString) then   // ClickedOK
  begin
    showmessage(inputstring);
    if tbl.FieldCount > 0 then
    begin
      with qy1 do
      begin
        close;
          SQL.Text := InputString;
        open;
      end;
      showmessage('hi');
      tbl.DataSource.DataSet := qy1;
    end
    else showmessage('Keine Tabelle geladen!');
  end
  else
end;

procedure TForm4.SQLeingeben1Click(Sender: TObject);
begin
  SQL_Allg(TTable(TDBGrid(TPopupMenu(TMenuItem(sender).GetParentComponent).popupComponent).datasource.DataSet));

  { InputString := format('select * from "%s" where NAME LIKE ''F%%'' ', [table3.tablename]);
  if InputQuery('SQL-Eingabedialog', 'Eingabe:', InputString) then     // OK gedrückt
  begin
    showmessage(inputstring);
    if dbgrid4.fieldcount > 0 then
    begin
      with qy2 do
      begin           //  CREATE INDEX IDX_Ci_Co on CUSTOMER (City, Country)
        close;
          //DatabaseName := '';
          SQL.Text := InputString;
        open;
      end;
      //showmessage(query1.Fields[0].asstring);
      datasource4.DataSet := qy2;
    end
    else showmessage('Keine Tabelle geladen!');
  end }

end;


Warum das denn?
Gruß, Detlef

_________________
ut vires desint, tamen est laudanda voluntas
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 08.02.10 21:35 
So, jetzt habe ich die Lösung selbst gefunden:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TForm4.SQL_Allg(tbl: TTable);
begin
  InputString := format('select * from "%s" where NAME LIKE ''A%%'' ', [tbl.tablename]);
  if InputQuery('SQL-Eingabedialog''Eingabe:', InputString) then   // ClickedOK
  begin
    showmessage(inputstring);
    if tbl.FieldCount > 0 then
    begin
      with qy1 do
      begin
        close;
          SQL.Text := InputString;
        open;
      end;
    end
    else showmessage('Keine Tabelle geladen!');
  end
  else
end;

procedure TForm4.SQLeingeben1Click(Sender: TObject);
begin
  SQL_Allg(TTable(TDBGrid(TPopupMenu(TMenuItem(sender).GetParentComponent).popupComponent).datasource.DataSet));
  TDBGrid(TPopupMenu(TMenuItem(sender).GetParentComponent).popupComponent).datasource.DataSet := qy1;
end;


Bis dann denn
Detlef

_________________
ut vires desint, tamen est laudanda voluntas