Sven Wagener: Sollte das jemand schaffen?

In reinem C (kein C++, kein ASP) ein Programm zu schreiben, welches auf eine Access Datenbank (mdb) zugreifen kann, Daten daraus ausliest und evtl. Daten in die Access-Datenbank schreiben kann!

Viel Spass!

  1. Hi Sven,

    In reinem C (kein C++, kein ASP) ein Programm zu schreiben, welches auf eine Access Datenbank (mdb) zugreifen kann, Daten daraus ausliest und evtl. Daten in die Access-Datenbank schreiben kann!

    klar geht das, auf ODBC-Datenquellen kannst du in jeder Sprache zugreifen, die auf das Windows-API zugreifen kann.

    Gruss,
    Martin

    1. klar geht das, auf ODBC-Datenquellen kannst du in jeder Sprache zugreifen, die auf das Windows-API zugreifen kann.

      Könntest Du mir das mal näher erläutern? Oder evtl. ein Beispiel geben?

      Sven!

      1. Hi Sven,

        Könntest Du mir das mal näher erläutern? Oder evtl. ein Beispiel geben?

        nun, vor ADO, OLE-DB oder DAO hat MS zusammen mit anderen Firmen schon einen mehr oder weniger einheitlichen Standard zum Zugriff auf verschiedenste Datenquellen geschaffen, eben ODBC (Open Database Connectivity). Dabei gibt es zwischen der Anwendung und der Datenbank mehrere Zwischenschichten, die für die Anwendung den Zugriff abstrahieren. D.h. die Anwendung interessiert nicht mehr ob da nun eine Textdatei drunter liegt, eine Excel-Tabelle, eine SQL-Server Datenbank, oder eben eine Access-Datenbank.

        Für die Anwendung erfolgt der Zugriff über einen Satz von Funktionen ähnlich den Funktionen des Windows-API. Es muss nur ODBC auf dem Rechner installiert sein, und der ODBC-Treiber für die jeweilige Datenquelle.

        Das "mehr oder weniger" oben bezieht sich darauf, das die Treiber halt doch etwas unterschiedlich sind, der eine unterstützt mehr, der andere weniger. Größtenteils liegt das an der Struktur der Datenquelle. Für eine Textdatei einen dynamischen Cursor anzufordern, der auf Einfüge- oder Löschen-Operationen Rücksicht nimmt geht halt nicht.

        In der MSDN Library findest du die Dokumentation unter Platform SDK -> Data Access Services -> Microsoft Data Access Components (MDAC) SDK -> Microsoft Open Database Connectivity (ODBC). Wenn du die MSDN CDs nicht hast, es ist im Netz unter http://msdn.microsoft.com/library/ zu finden. Ein Buch gibt es auch darüber, Inside ODBC von MS Press. Das ist zwar schlecht, ein Buch für Treiber- und Anwendungs-Entwickler, aber das einzige mir bekannte.

        Viel Spass dabei! Mich hat es damals ein paar graue Haare gekostet. Naja, von SQL hatte ich da auch noch keine Ahnung.

        Gruss,
        Martin

        1. Hallo Martin!

          » Für die Anwendung erfolgt der Zugriff über einen Satz von Funktionen ähnlich den Funktionen des Windows-API. Es muss nur ODBC auf dem Rechner installiert sein, und der ODBC-Treiber für die jeweilige Datenquelle.

          Also, die Datenquelle ist nun als ODBC Datenquelle deklariert.

          Was ist nun ein Satz von Funktionen. Soweit ich dass jetzt verstehe ist es so, dass dieser gewisse Satz von Funktionen in der Programmiersprache vorhanden sein muss. Ist dass so richtig?

          MfG Sven!

          1. Hi Sven,

            Also, die Datenquelle ist nun als ODBC Datenquelle deklariert.

            Yupp. Datenquelle ist einfach ein Name für einen "Ort", von dem Daten her kommen können. Ich kann's nicht genau definieren, aber an Beispielen beschreiben. Daten bekommt deine Anwendung z.B. aus einer Textdatei, von einem Datenbank-Server, aus dem Web (da gibt's m.W. aber noch keinen ODBC-Treiber), oder sonst wo her.

            Was ist nun ein Satz von Funktionen. Soweit ich dass jetzt verstehe ist es so, dass dieser gewisse Satz von Funktionen in der Programmiersprache vorhanden sein muss. Ist dass so richtig?

            Nicht in der Programmiersprache. Da nehmen wir mal die Windows-API (Application Programming Interface, Anwendungs-Programm-Schnittstelle). Das API gliedert sich in verschiedene Teile, bestehend aus Funktionen, Strukturen, Datentypen, Botschaften (Messages). Nicht jede API hat jeden Bestandteil, ODBC sind nur Funktionen und Strukturen. Wenn ich es noch richtig weiss, es ist schon ewig her als ich damit gearbeitet habe. Das war noch unter 16 bit Windows.

            Ein Beispiel für eine API ist z.B. das GDI, die Schnittstelle für die grafischen Funktionen von Windows. (Jaja, ich weiss, DirectX und OpenGL gibt's auch noch) Wenn du Linien auf dem Bildschirm siehst dann war da die GDI-Funktion LineTo beteiligt.

            Die APIs müssen natürlich der jeweiligen Programmiersprache bekannt sein. Für C/C++ sind das die Header-Dateien, in denen die Definitionen drin sind, und die .lib-Dateien, damit der Linker weiss wo er die Funktionen auch findet. (Stimmt auch nicht genau, aber langt momentan)

            BTW, ich hab' mir mal deine Web-Seiten angeguckt. In welcher Sprache programmierst du?

            Gruss,
            Martin

            1. ich hab' mir mal deine Web-Seiten angeguckt. In welcher Sprache programmierst du?

              In HTML. Mit Frontpage. geht irgendwie schneller! Die engines, die Dort laufen sind nicht so dirkt von mir. Die Sind von anderen zur verfügung gestellt. Ich hab jetzt aber vor diese sachen selbst zu Programmieren. Im momment interressier ich mich für diesen Datenbank kram. Damit ich aus mehreren Ebenenen Darauf zugreifen kann. Zum einem aus dem WEB, zum anderen Aus einer Applikation heraus z.B. für Administrative zwecke. sowas was Lotus Notes kann, nur das ganze ohne Notes. Ist zwar wesentlich schwieriger, aber wenn man einmal viele DBs beherrscht, dann macht das ganze viel mer spass!
              Wäre super, wenn Du mir da in Zukunft weiterhelfen könntest.
              Eine lauffähige CGI in C bekomm ich mittlerweile hin. Nur das mit der Anbindung an eine Datenbank ist halt eben nicht ganz einfach. Ich will es aber auf jeden Fall in C schaffen. Aufgeben werde ich wohl nie!

              Hast Du auch ne HP?

              1. Hi Sven,

                In HTML. Mit Frontpage. geht irgendwie schneller!

                <hüstel> Also programmieren ist das nicht, das ist HTML-Seiten erstellen. Da ist ein Riesenunterschied. Auch wenn man Scripte und ASP dazu nimmt.

                Wäre super, wenn Du mir da in Zukunft weiterhelfen könntest.

                Wenn ich gerade Lust, Zeit und das nötige Wissen habe beantworte ich Fragen.

                Aufgeben werde ich wohl nie!

                Das ist schon mal die richtige Einstellung.

                Hast Du auch ne HP?

                Nö. Ein Thema ist mir zwar nach langem Überlegen eingefallen, aber mir fehlt die Zeit. Vor allem weil ich zwar schlechtes Design erkennen kann, aber ein eigenes entwickeln, das dauert bei mir ;-)

                Gruss,
                Martin

                1. Hi Martin,

                  <hüstel> Also programmieren ist das nicht, das ist HTML-Seiten erstellen. Da ist ein Riesenunterschied. Auch wenn man Scripte und ASP dazu nimmt.

                  Ähmm, lang genug in HTML Programmiert, Kein bock mehr ne halbe ewigkeit zu tippen! Feinheiten werden immer noch manuell erledigt! Aber leider bleibt oft nicht mehr viel Zeit zu! Hast Du ne Gute alternative???

                  Das ist schon mal die richtige Einstellung.

                  Seh ich auch so! Bis jetzt alles geschafft, das was ich will, das schaff ich auch! ;-)

                  Mfg Sven!

                  1. Hi Sven,

                    Ähmm, lang genug in HTML Programmiert,

                    es ist egal, wie du die HTML-Seiten erstellst, ob von Hand, FrontPage, DreamWeaver, oder was sonst. Das ist nicht programmieren.

                    Gruss,
                    Martin

                    1. Naja haste auch mal wieder recht! Iss trotzdem ganz gut wenn man das noch kann! Wegen den Korrekturen etc.! In was programmierst Du alles?

                      1. Hi Sven,

                        In was programmierst Du alles?

                        angefangen habe ich in BASIC, danach kam Turbo-Pascal, dann MS-C, jetzt MS-Visual C++. Und das alles auf CP/M, Windows 3.0 bis NT4 und OS/halbe.

                        Warum komme ich mir gerade so alt vor? ;-)

                        Gruss,
                        Martin

                        1. angefangen habe ich in BASIC, danach kam Turbo-Pascal, dann MS-C, jetzt MS-Visual C++. Und das alles auf CP/M, Windows 3.0 bis NT4 und OS/halbe.

                          So ähnlich war es bei mir auch. Ich hab damals mit 8 oder 9 Jahren das erste mal in das Benutzerhandbuch des C64 reingeschaut. Da ding ich als kleiner Pimpf mit Basic an. Zwar nur ein bisschen so mit einfachen Schleifen (u.a. die gute alte goto Schleife). Dann kam irgendwann  eine Zeit lang HTML und Turbo Pascal. Das ganze hab ich dann zwar ne ganze weile gemacht aber mittlerweile hab ich nun gute möglichkeiten genug Informationen zu Programmierthemen zu bekomen. Nun bin ich bei C gelandet  und will das ganze mal in und auswendig können. dach soll C++ Kommen und mit Perl  und ASP will ich mich auch beschäftigen. Naja. Wird noch viel auf mich zukommen.

                          Kennst Du Dich den mit den ATI Befehlen unter C aus? West Du wie diese lauten? Oder hast Du eine gute Seite darüber? Ich weiss sonst im Momment nicht weiter.

                          MfG

                          Sven!

                          1. Hi Sven,

                            zwei Sachen habe ich noch vergessen. Der Zugriff auf eine Access-Datenbank klappt auch mit DAO (Data Access Objects). Damit habe ich aber noch nie gearbeitet, ich weiß nur dass die Jet-Engine von Access direkt angesprochen wird.

                            Und Logo habe ich auch mal gelernt, ebenso wie COBOL. Aber da weiss ich nix mehr.

                            Kennst Du Dich den mit den ATI Befehlen unter C aus?

                            ATI Befehle? Das sagt mir im Moment gar nix.

                            BTW, eigentlich ist dies ja ein HTML-Forum. Wenn du englisch kannst schau mal unter http://www.codeguru.com/. Das ist zwar eine Visual C++ Site, aber im Forum dort tauchen auch ab und zu Fragen zu anderen Sachen auf. Es wurde leider vor zwei Monaten aufgekauft, und wie es aussieht wollen die neuen Besitzer es nicht pflegen. Deswegen werden vermutlich die meisten "Gurus" demnächst auf http://www.codetools.com/ auftauchen. Die machen am 15.11. auf.

                            Gruss,
                            Martin

                            1. ATI Befehle? Das sagt mir im Moment gar nix.

                              Ich meinte eigentlich die API Befehle (war ein Tippfehler!) zur ansteuerung von ODBC Datenbanken! Du hast mir davon geschrieben.

                              1. Hi Sven,

                                Ich meinte eigentlich die API Befehle (war ein Tippfehler!) zur ansteuerung von ODBC Datenbanken! Du hast mir davon geschrieben.

                                achso. Wo du die findest habe ich dir doch in einer Messie weiter oben geschrieben, mit einem Link zu Microsoft.

                                Gruss,
                                Martin