Einzelnen Beitrag anzeigen

manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#8

Re: FIBPlus Komponenten Frage

  Alt 8. Mär 2006, 21:12
Zitat von dataspider:
schau mal in die Hilfe von FibPlus.
Dann wirst du sehen, dass du TpFibDataSet benutzen musst.
Die Query ist nur unidirektional und von TComponent abgeleitet.
Cu, Frank
Hallo hab die Hilfedatei wirklich gelesen.
Dort steht:
Using TpFIBQuery you can do the following things.
· You can get unidirectional dataset creating select statement into SQL property.
· You can do any database manipulation — insert, update and delete data, modifying metadata.
· You can execute stored procedures.

aber ich habe das ganze geändert und auf Datasets umgestellt.
Das sieht jetzt so aus:

Delphi-Quellcode:
function Neue_GuID: String;
var
  guidWork: TGUID;
begin
  CoCreateGuid(guidWork);
  Result := GUIDToString(guidWork);
end;

procedure Tfrm_tools.btn_idreplClick(Sender: TObject);
begin
    DM.pFIBDB_Gideons.Connected := True;
    DM.pFIBDS_NursingH.Open;
    DM.pFIBDS_NursingH_D.Open;
    DM.pFIBDS_NursingH_DD.Open;
    if not DM.pFIBDS_Camps.Active then DM.pFIBDS_Camps.Open;

      DM.pFIBDS_NursingH_D.Close;
      DM.pFIBDS_NursingH_D.UpdateSQL.Text := 'UPDATE Nursing_H_D SET ID_AREA = :newID WHERE id = :oldID';
      DM.pFIBDS_NursingH_D.Active := True;

      DM.pFIBDS_NursingH.Close;
      DM.pFIBDS_NursingH.SelectSQL.Text := 'SELECT ID FROM Nursing_H';
      DM.pFIBDS_NursingH.Active := True;
      while not (DM.pFIBDS_NursingH.Eof) do
        begin
          newID := Neue_GuID;
          oldID := DM.pFIBDS_NursingH.FieldByName('id').AsString;
          DM.pFIBDS_NursingH.edit;
          DM.pFIBDS_NursingH.FieldByName('id').AsString := newID;
          DM.pFIBDS_NursingH.post;
          DM.pFIBDS_NursingH_D.ParamByName('newID').AsString := newID;
          DM.pFIBDS_NursingH_D.ParamByName('oldID').AsString := oldID;
          DM.pFIBDS_NursingH_D.post;
          DM.pFIBDS_NursingH.Next;
  end;

end;
leider will das immer noch nicht. Bin echt den halben Tag heute aum Rumproieren

habe auch nebenbei den BT SQL Monitor am laufen. Aber mit den Datasets habe ich es echt ( auch )noch nicht
geschaft dass er die IDs durch GUIDs erszt.

Manfred

PS: wenns hilft?

SQL-Code:

CREATE TABLE NURSING_H (
    ID ID /* ID = CHAR(38) NOT NULL */,
    C_NR T30 NOT NULL /* T30 = VARCHAR(30) */,
    U_NR T30 NOT NULL /* T30 = VARCHAR(30) */,
    NAME T130 /* T130 = VARCHAR(130) */,
    STR T130 /* T130 = VARCHAR(130) */,
    PLZ PLZ /* PLZ = VARCHAR(10) */,
    CITY T50 /* T50 = VARCHAR(50) */,
    TEL T20 /* T20 = VARCHAR(20) */,
    FAX T20 /* T20 = VARCHAR(20) */,
    EMAIL T50 /* T50 = VARCHAR(50) */,
    HOMEPAGE T130 /* T130 = VARCHAR(130) */,
    ANZ_PL T10 /* T10 = VARCHAR(10) */,
    WORKER INTEGER,
    MT SMALLINT,
    ACCEPTANCE INTEGER,
    STATUS INTEGER,
    MEMO TEXT /* TEXT = BLOB SUB_TYPE 2 SEGMENT SIZE 4096 */,
    NC INTEGER,
    CS INTEGER,
    L_UPDATE TIME_S /* TIME_S = TIMESTAMP */,
    STAT_UPDATE INTEGER,
    STAT_DEL INTEGER
);
SQL-Code:
CREATE TABLE NURSING_H_D (
    ID ID /* ID = CHAR(38) NOT NULL */,
    C_NR T30 NOT NULL /* T30 = VARCHAR(30) */,
    U_NR T30 NOT NULL /* T30 = VARCHAR(30) */,
    ID_AREA ID /* ID = CHAR(38) NOT NULL */,
    D_DATE "DATE" /* "DATE" = DATE */,
    D_C_PERSON T50 /* T50 = VARCHAR(50) */,
    D_C_THRU T130 /* T130 = VARCHAR(130) */,
    D_MEMO TEXT /* TEXT = BLOB SUB_TYPE 2 SEGMENT SIZE 4096 */,
    L_UPDATE TIME_S /* TIME_S = TIMESTAMP */,
    STAT_UPDATE INTEGER,
    STAT_DEL INTEGER
);
  Mit Zitat antworten Zitat