Zum Inhalt springen

Olli_Master

Mitglieder
  • Gesamte Inhalte

    203
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Olli_Master

  1. Versuch mal beim Startbildschirm STRG+ALT+ENTF zu hämmern. Dann kommt (hoffentlich) das "bewährte" Anmeldefenster. Da sollte man die Anmeldung á la WinNT/2K einstellen können (z.B. als Administrator am lokalen PC). Hoffe das hilft.
  2. Toller Tipp! Passend zum Thema und sehr hilfreich. Natürlich fehlt noch eine Fehlerbehandlung für ODBC-Runtime-Fehler. So ergibt sich dann der Rückgabewert. Außerdem müssten die vordefinierten Variablen in Funktionsparameter umgewandelt werden, damit die Funktion ihren Zweck erfüllt. Aber daum ging es gar nicht. Besser? 'Verbindung zu einer Oracle 8.1.7 DB via ODBC Sub TestODBC() [...] End Sub
  3. Folgende Einstellungen funzen für Oracle ODBC 8.01.73 (8.1.7) Voraussetzungen: 1. Du Hast Oracle Net8 auf deinem Rechner mit Verbindung zur Datenbank. Und natürlich die Oracle ODBC-Treiber. 2. %ORACLE_HOME%\network\admin\tnsnames.ora enthält Eintrag für die Datenbank (ServiceName) 3. Du kannst dich unter Verwendung dieses Namens mit der DB verbinden. (z.B. mt SQL-PLUS) ACHTUNG: Passwort muss pro Verbindung eingegeben werden (leider). 'Verbindung zu einer Oracle 8.1.7 DB via ODBC Public Function TestODBC() 'Deklaration Dim wrk As DAO.Workspace Dim con As DAO.Connection Dim rs As DAO.Recordset Dim sSQL As String, sServiceName As String, sConnect As String, sUserName As String 'Parameter festlegen sUserName = "scott" sServiceName = "Hier Datenbankname/Servicename eingeben" 'DSN muss angepasst werden: sConnect = "ODBC;DSN=ora_scott;UID=" & sUserName & ";DBQ=" & sServiceName sSQL = "select * from scott.emp" 'Zuerst das Workspace Set wrk = CreateWorkspace("MyODBCWorkspace", "Admin", "", dbUseODBC) '==> Jetzt können wir die ODBC-Verbindung öffnen Set con = wrk.OpenConnection("MyConnection", , , sConnect) '==> Nun das Recordset öffnen Set rs = con.OpenRecordset(sSQL, dbOpenDynamic) Debug.Print rs.Fields(0), rs.Fields(1) 'Und nun aufräumen rs.Close con.Close wrk.Close Set rs = Nothing Set con = Nothing Set wrk = Nothing End Function Alles klar?
  4. Kommt die gleiche Meldung auch bei dbDriverPrompt? Außerdem kann das Passwort bei Oracle meines Wissens nach nicht per ODBC übergeben werden.
  5. Wie wird die Tabelle erzeugt? Dynamisch? Erkläre den Ablauf, wie die Tabelle erzeugt bitte ein wenig genauer. Geht es darum die Daten einer bestehenden Tabelle nur für den Druck anders aufzubereiten? Vielleicht wäre der bessere Ansatz nicht die Tabelle zwischenzuspeichern, sondern nur die Daten via CSS anders darzustellen?
  6. Schau dir mal die Access(97)-Hilfe zu den Themen Workspaces und Connections an. Die Beispiele sind recht hilfreich. Da wird meist unterschieden zwischen JET und ODBCDirect. Der erste Schritt: ' ODBCDirect Workspace-Objekt erstellen. Dim wrkODBC As Workspace Set wrkODBC = CreateWorkspace("NewODBCWorkspace", "Admin", "", dbUseODBC) Der zweite Schritt: ' Connection-Objekt mit den zusätzlichen ' Informationen aus der Verbindungszeichenfolge ' öffnen. Wenn die Informationen unzureichend sind, ' sollte ein Fehler aufgefangen und nicht das ' Dialogfeld des ODBC-Treiber-Managers angezeigt ' werden. MsgBox "Connection1 öffnen..." Set conPubs = wrkODBC.OpenConnection("Connection1", dbDriverNoPrompt, , "ODBC;DATABASE=Verleger;UID=sa;PWD=;DSN=Verleger") Und hier wirds lustig - leider ist das Beispiel für SQL-Server. Für Oracle müssen spezielle Änderungen gemacht werden. Auf jeden Fall muss erst mal eine DSN angelegt werden. Eventuell muss in der fertigen Anwendung das Passwort bei der 1.Verbindung eingegeben werden. Hoffe das hilft.
  7. Bei Verwendung von Access --> Oracle liegen die Performanceprobleme hauptsächlich am ODBC-Treiber. Zumindest bei Oracle 8.0.x und früher. Ab 8.1 ist es besser geworden. Frage: Wenn du DAO benutzen möchtest, warum nimmst du dann Access als Frontend - so wie ich mir das vorstelle musst du dann auf die ganzen Access-Funktionalitäten verzichten und nur VBA-Code schreiben. [korrigiert mich, wenn das falsch ist] Soweit ich weiss ist es mit Access nicht möglich Remote-Tabellen unter Verwendung von DAO zu verknüpfen (von dem Installationsaufwand der Anwendung und der Inkompatibilität mancher Datentypen mal ganz abgesehen). Wäre VB ne Alternative? Da hat man die Wahl zwischen JET, ODBC, ADO / DAO. (Oder gleich Java + JDBC ...)
  8. Genau das gleiche Problem hatten wir auch vor ca. 2 Monaten. Wir haben diese "Reperatur" aber mit dem Norton DIsk Doktor gemacht - das ist zu spät. jetzt kann man nur noch retten was zu retten ist (kleiner Scherz) Wieviel jetzt noch in der Excel-Datei intakt ist hängt davon ab wieviel CHKDSK kaputt gemacht hat. ----- Die Excel-Datei lässt sich meist in großen Teilen wiederherstellen. Dafür brauchst du ein Excel Recovery-Tool. Mit der "Demoversion" kannst du zumindest testen, ob die Datei noch Inhalte hat. (Aber vielleicht nützt dir das bereits etwas.) Leider kenne ich kein FreeWare Recovery-Tool.
  9. @Klotzkopp Das war genau was ich gesucht habe - zeichnet sogar besser auf als manch andere Shareware. Vielen Dank - hat mir echt sehr weitergeholfen.
  10. (Ich hab schon im Forum gesuch aber nix passendes gefunden!) Kennt jemand von Euch ein gutes Windows-Programm mit dem ich die aktuelle Bildschirmaktivitäten aufzeichnen und später wieder abspielen kann? (nicht als Überwachung!) Ziel ist es für eine Schulung bestimmte Programmaktivitäten aufzuzeichnen und bei einer Präsentation abzuspielen. Ideal wäre ein Freeware-Programm? Danke im Voraus
  11. 1. Schritt: Datei wiederherstellen ScanDisk nur im verwenden, wenn nichts anderes verfügbar ist - da geht sehr viel rettbares erst richtig kaputt. (Besonders ab WinNT aufwärts) Ich empfehle die Norton Disk Doktor. 2. Schritt: Excel Datei wieder öffen (können!) -------- Bei Fehler in der Excel-Datei: Meistens kann man danach die Excel-Datei aber nicht öffnen, obwohl große Teile noch in Ordnung sind. Dafür gibts spezielle Excel-Recovery Tools. Da habe ich mal sehr gute Erfahrung mit einem Tools namens "Excel-Recovery" (leider ShareWare) gemacht. -------- Wenn es reicht die Daten der Excel-Datei (als Text) zu bekommen (keine Formatierung, keine Formeln usw.), dann geht es auch mit Bordmitteln von Excel. (Sehr versteckt in der Online-Hilfe) Wenn du mehr wissen willst, dann poste nochmal.
  12. Ist Im Handbuch "Object Pascal" in jeder Delphi Version beschrieben. Alternativ geht auch die alte (DOS) Turbo Pascal-doku. Auszug: Mathemat: + - * / div mod shl shr .. Logisch: and or not ... Wofür brauchst du das?
  13. > include-Datei kann nicht geoeffnet werden: 'dsutil.h': No such file or directory Dieser Fehler sollte eigentlich nicht kommen, wenn die Pfade richtig eingestellt sind. Ich glaube aber das diese Datei zu den samples gehört und von Hand eingetragen werden muss (normalerweise brauch man nur <dsound.h>) Der Pfad müsste "%sdk_install%\samples\common" sein, bin mir aber nicht ganz sicher. Am besten du lässt mal nach der Datei suchen. Als Nächstes müsstest du auch noch die dsound.lib einbinden um die Funktionen aus der zugehörigen DLL aufzurufen. Warum genau brauchst du DirectSound/DirectMusic. Wenn du wavs abspielen möchtest, dann macht sich wie o.g. PlaySound() ganz gut. Für MP3-Streams macht sich DirectShow (!) ganz gut (und einfach). Am besten du schaust dir die mitgelieferten Beispielprojekte mal an.
  14. >Daher ist mir ein Fehler aufgefallen: Frage 20: Nr.4 soll wohl >richtig sein, also für die gesamte Bevölkerung... Nicht nur die Kinder - was ist mit den ganz Kleinen:), den Schülern, den Studenten, den Arbeitslosen und den Hausfrauen? Was mit unseren Rentern ist, weiss ich nicht genau, aber ALLE ist auf jeden Fall quatsch da zu pauschal!
  15. Wir haben vor langer Zeit in der Berufsschule mal eine paar LEDs auf LPT1 ferngesteuert. Mit DOS/Turbo-Pascal ist das kein Problem - da konnte man direkt den Speicher auslesen. Dann haben wir versucht das ganze auf Windows98 bzw. NT umzusetzen. Da ging das nicht so einfach (NT unterbindet die direkten Speicherzugriffe.) Jemand in meiner Klasse hat aber eine mehr oder weniger funktionierende Lösung unter Verwendung von CreateFile(..) (Win32 API) gefunden. Damit kann man nämlich ach Schnittstellen ansprechen... Wir haben noch nach etlichen (!) anderen Lösungen gesucht, aber nichts gefunden. Vielleicht hilft dir CreateFile() weiter...
  16. Nachtrag: Solche Abfragen lernt man, wenn man Access den Laufpass gibt und eine richtiges Datenbanksystem verwendet. Bei SQL lernt man aber niemals aus... Wobei ich nicht sagen will, dass es ein perfektes System gibt - nur bessere und kompliziertere
  17. s2 ist nur ein Alias für die Tabelle statistics. Da wir ja eine Unterabfrage auf die gleiche Tabelle machen, so muss doch gesagt werden welche Felder er zum Vergleich nehmen soll. Mit dem Alias kann man das angeben. (Der Name ist egal - hätte auch irgendwie anders heissen können (z.B. stat2 oder nur stat). P.S.: Ich habe oben den Post nochmal aktualisiert. Wegen des TOP/BOTTOM - Problems. Das ist äußerst seltsam in Verbindung mit dem UNION (vollkommen zufällige Werte!!!)
  18. Jau, klar - warum schreibst du nicht das hier? Abfrage vQueryLastWeek SELECT describing.Title, describing.url, statistics.total, statistics.week FROM statistics INNER JOIN describing ON statistics.[url-nr] = describing.[url-nr] WHERE (((statistics.week)=(select max(week) from statistics s2 where s2.[url-nr]=statistics.[url-nr]))); Das ist m.E. die erste Tabelle. (obwohl die Subquery im ersten Moment ein wenig unsinnig aussieht funktionierts bei meinen Beispieldaten...) Du sagst aber: "es gibt für jede url, für jede Woche eine totalnr" Wirklich? Warum musst du dann die Max_Woche je URL-Ermitteln? Der 2.Teil ist ein wenig komplizierter als zunächst angenommen: Abfrage vTOP10 SELECT TOP 10 vQueryLastWeek.url, vQueryLastWeek.total, vQueryLastWeek.week FROM vQueryLastWeek ORDER BY vQueryLastWeek.total DESC; Abfrage vBOTTOM10 SELECT TOP 10 vQueryLastWeek.url, vQueryLastWeek.total, vQueryLastWeek.week FROM vQueryLastWeek ORDER BY vQueryLastWeek.total; Abfrage vTB20 SELECT * from VTOP10 UNION SELECT * from VBOTTOM10 order by total desc Macht insgesamt 4 Abfragen: Pass auf, wenn du versuchen solltest die TOP10 und BOTTOM10 in eine UNION-Abfrage zu kombinieren - da kommen die ulkigsten Ergebnisse raus!!! So wars das?
  19. Kannst du bitte dein Ziel nochmal genau nennen. Zuerst schreibst du: "ich brauche die top und bottom 10 sites der jeweiligen letzen Woche." und dann: aber ich brauch ja ALLE Urls mit jeweiliger max.week und zugehöriger total, damit ichs auch noch für top 10 und bottom 10 sortieren kann --> Und warum dieses DISTINCTROW? ---------------- Ich denke du willst: im 1. Schritt: Eine Zeile pro URL, mit -> "größter" bzw. letzte Woche -> Total für diese URL (Enthält die Anzahl der Seitenaufrufe?) Im 2. Schritt Nur die URL's von Schritt1, mit den Top 10 bzw. Bottom 10 im Feld Total. Und welche Woche möchtest du nun haben? Nur die letzte oder die jeweils letzte? Was passiert, wenn es zu einer URL keine "letzte" Woche gibt, weil sie nicht angeklickt wurde? Die TOP10/BOTTOM10 bziehen sich auf die Totals unabhängig von der Woche, oder? (wie sonst) Kannst du mal die fertige Ausgabe aufschreiben: (z.B.) (Top/Bottom10) URLxx 2000x Woche20 URLxx 1800x Woche20 ... URLxx 10x Woche19 URLxx 5x Woche20 IST DAS RICHTIG? (Das wäre ja eine Statistik, die ich selbst gefälscht hätte :-) Warum nimmst du nicht nur die URL's, die in der letzten Woche auch verwendet wurden. Dann wäre es eine saubere Statistik!
  20. ACH SO! Jetzt wirds etwas klarer. Wie wäre es mit einer SubQuery? SELECT describing.Title, describing.url, statistics.total, statistics.week FROM statistics INNER JOIN describing ON statistics.[url-nr] = describing.[url-nr] WHERE (((statistics.week)=(select max(week) from statistics))); Jetzt hast du ein Format á la (Title, Total, Week): Title1 250 25 Title2 250 25 ... Wobei die Woche der größte Wert aus der Tabelle Statistics über alle Datensätzte ist (nicht seitenbezogen) Das ganze nun als Abfrage Speichern und die o.g. Methode verwenden. --- Ich hoffe, ichs jetzt richtig verstanden!
  21. >> if op1.Value.true then for.Show Was soll das sein? if op1.Value = true then form.Show bzw. kürzer: if op1.Value then form.Show sieht doch erheblich besser aus, oder?
  22. Die Antwort ist schon mal nicht schlecht. Worauf ich auch immer großen Wert lege: - gibt es ein existierendes System? Wenn ja: Schwachstellen, Probleme, Warum soll/kann die alte Anwendung nicht mehr genutzt werden. - zu erwartende Datenmengen - durchzuführende Auswertungen/Statistiken (insbesondere die bereits bestehenden!) - Wer soll wo, wann und warum mit dem Programm arbeiten. (Anzahl der Nutzer) - Ausfallsicherheit der DB-Anwendung (Datensicherung, usw.) - Welche Erweiterungen werden sich in naher Zukunft ergeben. usw. Man könnte noch tausend andere Sachen nennen - wichtig ist nicht nur das WAS sondern auch immer das WARUM!
  23. Kommt darauf an: Wenn du aber wirklich keine Ahnung von Datenbanken hast, dann solltest du darüber nachdenken, ob sich ein fertiges Inventarsystem nicht besser eignet. ansonsten: Wenn du unbedingt Delphi (? Version?) verwenden möchtest/musst und die mitgelieferten Datenbankfunktionen (TTable, usw.) verwendest, dann benötigt dein Projekt unbedingt die BDE (Borland Database Engine). Die muss dann auf dem Rechner installiert werden, auf dem die Anwendung ausgeführt wird. Die BDE bietet Möglichkeiten zum Datenzugriff auf verschiedene DBMS (Access/Paradox/Interbase usw.). --- Welche Datenbank sich eignet kann man nicht pauschal beantworten. Hängt ab von Nutzerzahl, Datenmenge usw. --- Für den Anfang (zum Ausprobieren) ist auf jedenfall Access zu empfehlen. Für ernsthafte, größere Anwendungen sollte man sich überlegen, ob ein richtiger Datenbankserver nicht sinnvoller ist (Oracle, DB2, *** SQL-Server). Mir ist nicht bekannt, ob man von Delphi aus auf freie Datenbanken (mySQL, etc.) zugreifen kann. Wenn das funktioniert, wäre eine kostengünstige Alternative. --- Für komplizierte Auswertungen ist Delphi nicht unbedingt geeignet (besonders wenn es viele sind und bei Bedarf noch neue hinzukommen).
  24. Deine Formulierung ist nicht ganz eindeutig. Ich vermute aber mal, dass du die 10 meistbesuchten und 10 am wenigsten besuchten URLs ausgeben willst. Und ich gehe davon aus das du in der Lage bist eine Abfrage mit folgendem Inhalt zu erstellen: URL Anzahl Woche/Datum/etc. xxxxx xxxxx xxxxxxxx xxxxx xxxxx xxxxxxxx xxxxx xxxxx xxxxxxxx Und davon möchtest du nun die TOP10/LAST10 Zeilen haben, bezogen auf die Werte im Feld Anzahl. Richtig? ==> Die ersten und letzten 10 musst du in jeweils eine Abfrage aufteilen: SELECT TOP 10 t.Wert FROM tabelle t order by Wert; SELECT TOP 10 t.Wert FROM tabelle t order by Wert desc; Wenn du dem "Access-SQL" mächtig bist, dann kannst du auch folgende Anweisung direkt eingeben: SELECT TOP 10 t.Wert FROM Tabelle t order by Wert desc union SELECT TOP 10 t.Wert FROM Tabelle t order by Wert Aufpassen: Das Order By ist bei UNION-Abfragen sehr trickreich. Die SQL-Anweidung muss natürlich an deine Feldnamen angepasst werden. Hoffe das hilft.
  25. Ich zitiere folgenden Text aus der Online-Hilfe: (leicht gekürzt) Sub NeueAbfrage() Dim dbs As Database, qdf As QueryDef ' Bezug auf aktuelle Datenbank zurückgeben. Set dbs = CurrentDb ' QueryDefs-Auflistung aktualisieren. dbs.QueryDefs.Refresh ' Abfrage "LetzteEinstellungen" löschen, falls sie existiert. For Each qdf in dbs.QueryDefs MsgBox qdf.Name Next qdf Set dbs = Nothing End Sub Damit solltest du dann eine Kombobox füllen können.

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...