Announcement

Collapse
No announcement yet.

Update schreiben,...

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

  • Update schreiben,...

    Hi,

    ich möchte die Datenbanken (Access) bei dem ersten Start importieren!!
    Möchte den Benutzer aber die Wahl lassen ob er möchte oder nicht!
    Das soll nur beim ersten Aufruf des Programmes funktinieren, dann soll es diese Option nicht mehr geben!!
    Wie mache ich das?

    Problem ist auch das die alten (frühere Version von meinem Programm) nicht den gleichen Tabellenaufbau hat, wie meine jetzigen Tabellen.

    Wer kann mir helfen???

    Danke BINE :_)

  • #2
    Also da wirds latürnich komplizierter, zu 1. Experimentiere mal mit TDatabase, wenn Du dort den Access-Treiber einstellst, dann die TDatabase Doppelklickst, gibt es dort einen Schalter "Standardwerte" oder so ähnlich, wenn Du den anklickst werden alle möglichen Einträge für diesen treiber eingesetzt und Du kannst die benötigten ausfüllen, hier gibts dann übrigends auch die möglichkeit user und passwort einzutragen, wenn man dann noch die Eigentschaft "Logindialog" (oder so ähnlich) auf false stellt wird der benutzer nicht mehr bezüglich passwort "belästigt" und bekommt eben dieses auch nicht mit. Vielleicht schaffst Du damit den Zugriff, obwohl das mit experimenten verbunden ist. Ob der Benutzer das importieren gewünscht hat oder nicht wirst Du Dir irgendwie in einer Ini-Datei oder der Registry "merken" müssen.
    Zu 2. Die Komponente Batchmove hat eine eigenschaft dafür, ich glaube Mappings oder so ähnlich

    Comment


    • #3
      Ich würde in Zukunft in der Datenbank eine Tabelle Global mit Spalten GlobalName und GlobalValue führen.

      In dieser würde ich die Datenbank-Version (Strukturversion) speichern.
      Beim Start der Applikation schaust Du nach welche Version die DB hat und bietest die Aktualisierung an und änderst danach die Versions-Nummer

      Comment


      • #4
        <br>Hi,...
        <br>
        <br>Wenn es nur beim ersten Aufruf des Programmes gemacht werden soll, so kann man einen Registryschlüssel erstellen.
        Wenn das Programm dann gestartet wird, wird nach diesem Reg-Eintrag gesucht, wenn der Reg-Eintrag nicht gefunden wurde, so ist es der erste Aufruf. Reg-Eintrag nun erstellen und import frage stellen.
        (das Object was zur Editierung der Registry ist heißt TRegistry)
        <br>
        <br>MfG
        <br>P

        Comment


        • #5
          Hi,

          danke für die schnellen Antworten, also LEIDER muß ich gleich etwas dazu schreiben, ich DARF nicht in die REGISTRY schreiben, wenn dann darf ich nur in eine INI etwas schreiben, die PC's von den Anwendern sind komplett geschützt gegen alles, also total abgeriegelt!

          Gibts dafür auch eine Lösung???
          Oder soll ich das gleich fallen lassen und den Benutzer immer die Möglichkeit geben, immer ein Update zu machen.
          Kann ich das auch in einer Tabelle (in einer Datenbank) schreiben??

          Da komme ich gleich zu meiner nächsten Frage, JEDER der ACCESS 2000 hat kann eigentlich meine data.mdb öffnen oder??

          Comment


          • #6
            Ein versuch wäre es trotzdem Wert, denn meist sind nur bestimmte Registry-Zweige gesperrt, ansonsten ist ein ini datei ja auch nichts schlimmes. Eine Tabelle für Settings zu benutzen geht natürlich auch, einfach eine tabelle mit den zwei spalten name und wert oder so ähnlich anlegen.

            Du kannst auch die ganze Datenbank mit einem Passwort versehen, dann dürfte es das einfachste sein, die Datenbank über TDatabase einzubinden und dort benutzername und passwort einzutragen (Login Dialog auf False setzen

            Comment


            • #7
              Also mal sehen ob ich es richtig verstanden habe.

              Ich versehe die Datenbank mit einem Passwort und in meinen Program (in der Komponente Database) steht das Passwort und der Benutzername.

              Und kein externes Programm kann dieses Programm mehr öffnen, daß nicht das Paßwort weiß. (ich weiß das man das umgehen kann, aber das weiß ja nicht jeder!) Also auch nicht Access2000?

              Habe ich es richtig verstanden?

              Comment


              • #8
                Exakt (leider auch das mit dem umgehen) in TDatabase einfach nach auswahl des Accesss Treibers auf den Knopf Standwerte (oder so etwas) klicken dann wird eine ganze latte von möglichen einträgen votgegeben unter anderem ist da etwas in der Art "user=" und "password=" drin, damit sollte es gehen, leider ein bissel gefummel, bis alle nötigen parameter gefunden sind, sollte aber gehen..

                Comment


                • #9
                  Danke! F
                  unktioniert gut mit dem Datenbankkennwort, kann ich so auch Rechte vergeben???

                  Eigentlich nicht oder?? Ich meine wenn der Benutzer passwort1 eingibt darf er löschen, bei Paßwort2 darf er nur eingeben, oder ist das Programm spezifisch? Ich schätze schon!!!

                  BINE :_

                  Comment


                  • #10
                    Hier gibt es zwei Wege, entweder Du vergibst tatsächlich in der Datenbank verscheidene Rechte. Dann kannst Du die Eigenschaft Connected der Database auf false belassen, einen eigenen Logindialog vor das öffnen schalten und die Parameter entsprechend vor dem Connecten eintragen (ist eine Stringlist) dann müssen natürlich entweder zur Entwicklungs- oder Laufzeit die bisherigen Einträge user und pw gelöscht werden, damit sie nicht doppelt auftauchen. Zweite Möglichkeit: immer mit dem selben login rein und rechte selbst verwalten, z.B. indem bei bestimmten Query Requestlive umgeschaltet wird, nur eingeschränkte Selects angegeben werden, oder sie ganz einfach nicht activiert werden. Dabei tritt dann aber das Problem auf das bei den eingeschränkten selects fehlermeldungen durch Steuerelemente verursacht werden die an nicht (mehr) vorhandene Felder gebunden wurden, die muss man leider zusätzlich disablen, bzw, einfach datasource auf nil setzen, oder in den Fällen DBGrids nehmen, bei denen keine Felder von Hand eingetragen wurden.

                    Comment

                    Working...
                    X