Announcement

Collapse
No announcement yet.

ADOCommand "Table unknown"

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

  • ADOCommand "Table unknown"

    Hallo,

    das Problem, das ich habe hat eigentlich im Quickreport-Forum begonnen (Erstellen einer Monats-Stundenliste), aber da es sich dann auf ADO ausgeweitet hat hoffe ich, dass mir hier eher jemand helfen kann.

    Also ich möchte eine Monats-Stundenliste ausgeben, welche die Projektstunden, die jeder einzlne Mitarbeiter an einem Tag geleistet hat aufführt. Zu diesem Zweck hab ich eine Tabelle mit den Tagen 1-31, datum Mitarbeiterid und der Projektid angelegt. Im Programm hab ich eine Routine eingebaut, welche für jedes Datum die gewünschten Angaben in die Tabelle einfügt. Den Insert-Code will ich in einem ADOCommand aufrufen. So weit so gut.

    Hier die Procedure:

    procedure Tweekcalform.Monthlist (Sender: TObject);

    var

    month,

    month2,

    year,

    day : word;

    Date : TDate;

    Stunden : String;

    i: integer;

    begin

    day := 1;

    year := yearof(MonthCalendar1.Date);

    month := monthOf(MonthCalendar1.Date);

    Date := encodeDate(year, month, day);

    i := 1;

    Stunden := 'Std' + IntToStr(i);

    repeat

    DataModule1.ADOConnection1.BeginTrans;

    DataModuleWeeklist.ADOCommand1.CommandText := 'INSERT INTO Monthlist ' + ' (ID, Projektid, Datum, ''' + Stunden + '''' + ' )' + ' SELECT id, projektid, datum, sum(stunden) FROM Mitarbeing' + ' WHERE Mitarbeing.datum = ''' + DateToStr(Date) + '''' + ' group by datum, id, Projektid';

    try

    DataModuleWeeklist.ADOCommand1.Execute;

    DataModule1.ADOConnection1.CommitTrans;

    except

    DataModule1.ADOConnection1.RollbackTrans;

    end;

    i := i + 1;

    Stunden := 'Std' + IntToStr(i);

    Date := Date + 1;

    Month2 := monthOf(Date);

    until month2 = month + 1;

    end;

    Nun erhalte ich aber zur Laufzeit immer die Meldung "Table unknown Monthlist", obwohl die Tabelle auf der Datenbank vorhanden ist und der gleiche SQL-Code in der IBConsole auch ausgeführt wird. Die Tabelle lässt sich auch mit einer ADODataSet-Komponente verknüpfen und wird in der Liste von CommandText angezeigt.

    Also kein Fehler in der ADOConnection.

    Außerdem wird der SQL-Code, wenn ich ihn unter CommandText ohne Variable eingebe auch ausgeführt. -> Auch kein Fehler im SQL-Code

    Nur eben nicht zur Laufzeit.

    Desweitern wird die gleiche SQL-Anweisung, wenn ich eine andere Tabelle einfüge auch zur Laufzeit ausgeführt.

    -> Also irgend etwas stimmt mit der Tabelle nicht. Nur was ???

    Die Rechte sind übrigens für jeden User vorhanden.

    Ich weiß nicht, was ich noch alles versuchen soll, also bitte helft mir schnell, bevor ich ganz verzweifle.

    Gruß Elke

  • #2
    Hallo,

    mein Problem hat sich gelöst. Ich hatte von meinem Programm eine neue Version erstellt. Die Tabelle hatte ich in der Datenbank der alten Version erstellt. Die Verknüpfung zur Desingzeit ging auch noch auf die Datenbank der alten Version. Zur Laufzeit hat sich das Programm aber den Pfad der neuen Version gesucht, in der die Tabelle natürlich nicht vorhanden war. Das konnte ja nicht gehen.

    Also sorry, dass ich wieder Land und Leute verrückt gemacht habe.

    Gruß Elk

    Comment

    Working...
    X