Zum Inhalt springen

Olli_Master

Mitglieder
  • Gesamte Inhalte

    203
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Olli_Master

  1. Ab Delphi 3 Pro gibt es dafür fertige Komponenten. (Irgendwas mit T..ICMP...). Das waren aber keine reinen Delphi-Komponenten, sondern "ActiveX-Komponenten". 2 Alternativen: Wenn du eine schlanke Variante brauchst, dann schau dir mal folgendes an: (ist zwar eigentlich für VB, sollte mit Delphi aber ähnlich funktionieren.) (S)chlot(S)ofts (Tools) - (DLL) Wenn du eine Abneigung gegen ActiveX hast, (und dich ein wenig auskennst), dann gibt es auch eine reine C++ DLL, die man (mit der richtigen Deklaration) auch in Delphi aufrufen kann: ssnet.dll Ich hoffe das hilft.
  2. Versuche es mal mit folgenden Einstellungen: Benutzername: Admin (Kennwort leer lassen) Das ist der Access-Standardbenutzer.
  3. Kleiner Nachtrag: Zum Thema "Quellltext": Wenn der Quelltext nicht mit Dokumentiert werden soll, dann sollte folgende Option "INLINE_SOURCES" nicht in der Konfigurationsdatei erscheinen: http://www.stack.nl/~dimitri/doxygen/config.html#cfg_inline_sources Zum Thema "Eigene Tags": Schau dir mal das Doxygen-Kommando ALIASES an: http://www.stack.nl/~dimitri/doxygen/config.html#cfg_aliases Ich habs zwar noch nicht selbst benutzt bzw. ausprobiert, so könnte es allerdings funktionieren.
  4. Ich benutze nur die eingebauten Tags, die reichen bei C++ vollkommen aus. Soweit ich weiss kann man die Tags nicht ändern - aber keine Garantie. Was angezeigt wird (nur Deklaration oder ganzer Quellcode) kann man in der Konfigurationsdatei festlegen. Die Optionen sind auf der doxygen-Website sehr gut beschrieben. Zum Offline-Lesen macht sich die die CHM-Hilfe-Datei ganz gut. Ich hoffe das hilft dir weiter...
  5. Es funktioniert auch ohne Klassen (ähnlich wie bei C-Programmen). Das Ergebnis ist dann natürlich weniger übersichtlich. Beispiel aus der doxygen-dokumentation: http://www.stack.nl/~dimitri/doxygen/docblocks.html#docblocks Wichtig: - die zu dokumentierenden Dateien muss in der Konfigurationsdatei angegeben werden (Pfad reicht) - für die Kennzeichnung der Doku-Kommentare gibt es mehrere Möglichkeiten: statt /*! kannst du auch wie in deinem Beispiel /** verwenden - die Funktionen, Variablen können wie folgt dokumentiert werden: *! \file structcmd.h \brief A Documented file. Details. */ /*! \var typedef unsigned int UINT32 \brief A type definition for a . Details. */ /*! \var int errno \brief Contains the last error code. \warning Not thread safe! */ /*! \fn int open(const char *pathname,int flags) \brief Opens a file descriptor. \param pathname The name of the descriptor. \param flags Opening flags. */ /*! \fn int close(int fd) \brief Closes the file descriptor \a fd. \param fd The descriptor to close. */ /*! \fn size_t write(int fd,const char *buf, size_t count) \brief Writes \a count bytes from \a buf to the filedescriptor \a fd. \param fd The descriptor to write to. \param buf The data buffer to write. \param count The number of bytes to write. */ typedef unsigned int UINT32; int errno; int open(const char *,int); int close(int); size_t write(int,const char *, size_t); und hier die daraus generierte Datei http://www.stack.nl/~dimitri/doxygen/examples/structcmd/html/structcmd_8h.html Um eine Doku zu generieren muss du die Konfigurationsdatei entsprechend einrichten. Ggf. ich benutze dafür das Java-Frontend doxywizard ----- Die genaue Definition, welche Tags existieren kann man in der Doku zu Dokxygen nachlesen: http://www.stack.nl/~dimitri/doxygen/manual.html ----- Ich hoffe das hilft dir weiter...
  6. Mit diesen dummen Schaltungen habe ich mich auch am Anfang schwer getan (trotz Physik-Leistungskurs 1). Bei mir war es aber eher der Lehrer, dessen Aufgaben immer sehr ungenau gestellt hat. Probleme hatte ich immer mit der praktischen und manchmal (wenig mathematisch und) konfusen Herangehensweise an die Aufgaben. Mittlerweise habe ich es geschnallt und kann es sogar anderen erklären (hoffe ich zumindest) Bei mir hat folgendes geholfen, das Thema endlich zu raffen: -- Zuerst eine ganze Palette von Aufgaben (mit Lösungen) mit besorgen, ein Buch wo die Theorie gut erklärt wird (Physik 8,9,10 Klasse) -- und dann ein Wochenende Zeit nehmen -- 1. Grundlegende Sachen sollte man wissen (Definitionen Widerstand, Stromstärke, Spannung) und verstanden haben 2. Einfacher Stromkreis (Spannungsquelle+Widerstand) + Alle möglichen Berechnungen (Ohmsches Gesetz) ---------- Hier ist ein wichtiger Punkt - wenn du bis hier Probleme hast: Erklären lassen, Aufgaben rechnen, Erklären lassen, Aufgaben rechnen, Erklären lassen, Aufgaben rechnen :confused: :confused: ----- 3. Grundlagen: Gesetzmäßigkeiten für Reihen- und Parallelschaltung (U = konstant bzw. I=konstant) 4. Grundlagen: Knotensatz, Maschensatz verstehen und anwendungen ---------- Nun kommen die Schaltungen 5. Berechnungen an Reihenschaltung und Parallelschaltung ---------- Hier ist ein wieder ein wichtiger Punkt - bei Problemen: Erklären lassen, Aufgaben rechnen, Erklären lassen, Aufgaben rechnen, Erklären lassen, Aufgaben rechnen -------- 6. Dann kannst du dich an die schweren Sachen wagen (Gemsichte Schaltungen, Potentiometer, ...) Beim Aufgaben rechnen immer folgendes beachten: Gegebene und Gesuchte Werte aufschreiben Schaltung in Ruhe durchdenken Weg zum gesuchten Wert Schaltung sinnvoll in kleinere Teilaufgaben zerlegen Aufgaben rechnen Ergebis checken, ob sinnvoll ich hoffe das hilft dir weiter :confused:
  7. Je nach Sprache gibt es oft schon fertige Lösungen. Und das meiste ist sogar kostenlos Für C++ benutze ich DoxyGen. Mit der richtigen Konfiguration (und einer kleinen Batch-Datei) erhält man per Doppelklick eine fertige Dokumentation in diversen Formaten (u.a. HTML, CHM, ...). Interessant ist besonders die autom. Generierung von Klassendiagrammen und der Beziehungen zwischen den Klassen. Alternativen: Liste von Dokumentations-Tools Ich hoffe das hilft.
  8. (Dim Prp as Property: Create...????) Nochmal vielen Dank für die helfende Lösung!!! Beim Hinzufügen von neuen Properties werden keine Änderungen am Objektmodell durchgeführt. (Keine Neukompilierung, keine neue Version, kaum Änderungen an der Doku) ==> also: Properties-Auflistung = flexibler und weniger Aufwand als normale Eigenschaften. Das "Wie" ist in der Access-Hilfe beschrieben (CreateProperty bzw. Properties.Append). Das "Wofür" hängt vom Anwendungsfall an. Normalerweise könnte man in solchen Properties Konfigurationsinformationen speichern. Oder allgemeiner: Alle Informationen, die die gleiche Struktur haben (Properties("StringA") = "StringB") , aber von denen man vorher nicht weiss, welche Namen die Properties genau haben bzw. wieviele es sind. Properties sind ja eigentlich nur eine dynamische Liste von String-Zuweisungen. (=StringMap) Die Frage, ob man dort selbst was speichert ist abhängig davon, ob MS die Schnittstellen ändert oder nicht...
  9. Ich habe vor langer Zeit mal ein Modul zur Analyse Tabellenstrukturen für Access 97 geschrieben. Da sind u.a. auch die "Beschreibungen" dabei. Die wichtigen Stellen sind fettgedruckt. (Die Tabellenstruktur wird in die Tabellen tTableDef bzw. tColumnDef geschrieben) Die Beschreibung ist im Objektmodell nicht benannt, da es eine "benutzerdefinierte Eigenschaft" (sprich PROPERTY) ist. [...] Private Sub ExploreTables() Dim tdf As DAO.TableDef, fld As DAO.Field, rsTables As DAO.Recordset, rsColumns As DAO.Recordset, prp As DAO.Property DoCmd.SetWarnings False Set rsTables = CurrentDb.OpenRecordset("tTableDef") Set rsColumns = CurrentDb.OpenRecordset("tColumnDef") ' Alle Tabellen durchgehen [B]For Each tdf In CurrentDb.TableDefs[/B] If (Left(tdf.Name, 4) <> "MSys") And (tdf.Name <> "tTableDef") And (tdf.Name <> "tColumnDef") And (tdf.Name <> "tDataType") Then rsTables.AddNew rsTables.Fields("Name") = tdf.Name On Error Resume Next rsTables.Fields("Description") = Nz([B]tdf.Properties("Description")[/B], "") rsTables.Fields("RowCount") = DCount("*", tdf.Name) On Error GoTo 0 rsTables.Update iTableId = DLookup("ID_Table", "tTableDef", "Name = """ & tdf.Name & """") ' Alle Felder der Tabelle durchgehen [B]For Each fld In tdf.Fields[/B] rsColumns.AddNew rsColumns.Fields("id_table") = iTableId rsColumns.Fields("id_type") = Nz(fld.Properties("Type"), "") rsColumns.Fields("Name") = fld.Name ' Fehler aufgrund nicht vorhandener Eigenschaften ignorieren On Error Resume Next rsColumns.Fields("Description") = Nz([B]fld.Properties("Description")[/B], "") rsColumns.Fields("Format") = Nz(fld.Properties("Format"), "") On Error GoTo 0 rsColumns.Update Next fld End If Next tdf DoCmd.SetWarnings True Set rsColumns = Nothing Set rsTables = Nothing End Sub ich hoffe das hilft
  10. Einige Datenbanken unterstützen die Funktion SOUNDEX. Der Syntax ist z.B. bei Oracle folgendermaßen: select name from tPersonen where soundex(Name)=soundex('Meyer'); NAME ------- Meyer Mayer Maier Da brauch man kein Intermedia Text.
  11. Wir haben (zwangsweise) 8 Oracle DBs in verschiedenen Versionen und Größen unter WinNT-Win2K Server laufen. Wenn's einmal richtig läuft, dann ist alles ok. Und im Vergleich dazu eine SQL-Server-DB (für SMS) Oracle Installations- und Konfigurationsaufwand ist sehr groß gegenüber MSSQL. Performance bei Oracle ist je nach Qualität der Administrators gut bsi sehr gut. Bei kleinen Datenmengen (<1 Mio DS) ist MSSQL schneller. Bei komplizierten Sachen meist Oracle. Aber mal ganz ehrlich: Updates, Upgrades, Datensicherung und Troubleshooting sind bei der Kombination Oracle + Windows manchmal der absolute Horror. Ab der 9i von Oracle hat sich einiges gebessert. Also kurzum: Wer Oracle einsetzen will braucht: a) mehr Geld mehr Know-How (besonders wenn es zu Problemen kommt :-) c) und hat mehr Aufwand Dafür ist er: a) Betriebssystemunabhängiger Schneller bei großen Datenmengen (und guter Administration) c) Flexibler bei großen Umgebungen (Snapshots + Replikation, XML-DB, Enterprise-Manager usw.). Und es gibt viele interessante Zusatzfunktionen, die direkt in die Datenbank integriert sind. (z.B. Intermedia Text, ...) Fazit: Nur weil es etwas schneller bei der Volltextsuche ist sollte man keine neue Datenbankplattform einführen. oder?
  12. Unter Linux werden etwa keine DADs bei mod_plsql angelegt? Was meinst du mit "fehlerhaft"?
  13. Nur so ne Idee: Könnte man nicht die Aufrufe ggf. mit ner Firewall protokollieren und dann auswerten? Oder einen Proxy-Server dazwischenschalten, wenn es nur um HTTP geht. Sonst: Ursache könnte jede Art von Spyware oder Windows selbst sein.
  14. Alternative: Excel kann auch Abfragen in externen ODBC-Datenbanken durchführen (u.a. auch Access). Die Abfrage wird dann im Excel angezeigt, kann jedoch per Mausklick aktuell aus der Datenbank abgerufen werden. Excel Online-Hilfe unter "Externe Daten" Excel 97: Schau mal unter Daten --> Externe Daten --> Neue Abfrage Erstellen... oder Daten --> Pivot - Tabellenbericht... Das sollte man sich aber gut überlegen... (Datenaustausch <=> Standards usw.)
  15. einer der vielen Wege des Excel-Exports: Access 97: - Tabelle im Datenbankfenster Auswählen - Menü: Datei --> Menüpunkt: Speichern unter/Exportieren... - Option: In externe Datei oder Datenbank - Kombinationsfeld Dateityp: "Microsoft Excel xx" auswählen fertig Andere Access-Versionen funktionieren analog dazu.
  16. =DomWert("[Name]";"tblPersonen";"[ID]= [Formular2].[FID]") Das ist eine Access-spezifische Funktion, die ein berechnetes Feld zurückgibt. Dieses Feld der Abfrage ist definitv nur lesbar (Access unterscheidet Spaltenweise , ob eine Bearbeitung möglich ist. Um dein Problem in den Griff zu bekommen würde ich es schrittweise eingrenzen: 1. Nur eine Tabelle abfragen --> Bearbeitung möglich? 2. Eine 2. verknüpfte Tabelle dazunehmen --> Bearbeitung möglich? 3. Eine 3. verknüpfte Tabelle dazunehmen --> Bearbeitung möglich? 4. usw. Bis irgendwann die Bearbeitung nicht mehr möglich ist. An diesem Punkt kann man das warum genau untersuchen. Wichtig: a) Jede Tabelle, deren Felder bearbeitet werden sollen, braucht einen Primärschlüssel. Berechnete Felder sind immer nur lesbar.
  17. Grundsätzlich gilt bei Datenbanken: Es gibt folgende Rückgaben bei SQL-Abfragen: - nur lesbare Recordsets - Recordsets mit Lese-/Schreibzugriff Der SQL-Befehl und ein paar Optionen selbst entscheiden über das Ergebnis. Ob das Ergebnis bearbeitet werden kann, siehst du in der Datenblattansicht der Abfrage. Ursache könnte z.B. folgendes sein: - Kein Primärschlüssel in der Abfrage - Abfrage beginnt mit SELECT DISTINCT - mind. 3 Tabellen mit 1:n - Beziehungen in der Abfrage hast (und DS-Gruppentyp Dynamisch) - Group by oder Aggregatfunktionen (Sum, Avg, Max, Min) in der Abfrage verwendet - In der Entwurfsansicht wurden keine Beziehungen definiert - Kreuztabellen-Abfrage - Union-Abfrage - SQL-Pass-Through-Abfrage - Datenbank ist schreibgeschützt - Tabelle ist gesperrt ... Eine genaue Antwort auf deine Frage gibt es in der Access-Online Hilfe: > Index >>Abfragen >>>, Ändern von Ergebnissen >>>> "Wann können Daten aus einer Abfrage aktualisiert werden?" # Ich hoffe das hilft
  18. Standardmäßig ist bei dem lustigen Assistenten die "vertraute Verbindung" zum SQL-Server eingestellt. Soll heißen: Die Betriebssystemanmeldung (Domäne\Benutzername) wird an den SQL-Server zur Benutzeranmeldung weitergegeben. Ist kein passender Benutzer im SQL-Server angelegt, so kommt es zu o.g. Fehlermeldung. 1. Möglichkeit: als Nutzer sa anmelden. Der sollte auf jedenfall existieren. Hierbei handelt es sich um die "SQL Server-Authentifizierung" 2. Möglichkeit: einen Nutzer auf dem SQL-Server anlegen und mit dem Betriebssystem-Account "verbinden" Doku aus dem SQL-Server-Handbuch
  19. Das ist mal wieder eines der vielen undokumentierten Features von Access. Leider kenne ich keine Möglichkeit dieses "Feature" zu umgehen oder zu deaktivieren. Außer man setzt ein vernünftiges DBMS ein...
  20. Unter NT läufts doch - also ist das sehr unwahrscheinlich.
  21. Ich würde mitunter folgendes Testen: Funktionert es mit dem gleichen Benutzernamen auf einem anderen PC? Könnte der Drucker oder irgendwelche lokalen (gemappten) Laufwerke die Ursache sein? Hat der Nutzer weniger Berechtigungen als die anderen? Tritt das Problem auch mit WTS (Terminal Services) auf? ...
  22. Warum? Mit welchem Ziel? Da du deinen Code kennst (und ihn schön sauber in Klassen aufgeteilt hast), sollte die Wiederverwendung nicht sehr schwierig werden. Aber grundlegene Kenntnisse über ActiveX solltest du schon dafür schon haben. Wie schwierig es im Detail wird hängt von verwendeten API's ab (MFC, ATL/COM, WinAPI , ...) Also meine Frage: WAS genau soll womit und WIESO wiederverwendet werden....
  23. Mal schauen, dass alle Updates unter Win95 installiert sind (Winsock2, MDAC, ODBC-Treiber ). Welche Programmierumgebung wurde verwendet? (VB, C++, FoxPro, ...) Vielleicht könnte man den Zugriff über ADODB testen (wenn Quellcode vorhanden)? Vielleicht ein Test mit MS Access (z.B. mehrere Verbindungen per VBA simulieren)?
  24. Access unterstützt das Anlegen von Indices, welche den Zugriff (WHERE, ORDER BY, GROUP BY) auf die Tabellen wesentlich verbessern. Der Index muss dabei genau die Spalten beinhalten, die sonst Zeile für Zeile geprüft würden (Full-Table-Scan) (Access 97 --> Tabelle->Entwurfsansicht, Menü Ansicht --> Indices) Die Wahl der richtigen Indices spielt eine große Rolle auf die Abfragedauer. Außerdem benötigen die Indices zusätzlichen Platz in der mdb-Datei. Einfüge- und Aktualisierungs-Befehle können dadurch ein wenig länger dauern, da die Indices autom. gepflegt werden... Bei Verknüpften Tabellen (Oracle, SQL-Server, ...) geht das natürlich nicht innerhalb der Datenbank. Wichtig ist außerdem, die Anzahl der zurückgegebenen Felder möglichst gering zu halten, am besten INNER JOINS als Verknüpfung zwischen Tabellen benutzen und die Datenmenge möglichst clever zu begrenzen.
  25. Ruf den script mal über die Kommandozeile mit cscript.exe <<name_des_scripts.vbs>> auf. Ich hoffe das hilft.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...