
schorschi
Mitglieder-
Gesamte Inhalte
116 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von schorschi
-
Meinst Du mit CallStuck meinen Quellcode bei welcher Anweisung der Absturz passiert ? Wenn ich die Database bzw. Recordset öffnen will. Definitiv ist das beide beim Versuch sie zu öffnen geschloßen sind.Also der Fehler kommt nicht daher. Wenn ich Daten per Socket empfange und den Dialog öffne mit einer openrecordset Methode in InitDialog() habe jetzt ich die Fehlermeldung: Unbehandelte ausnahme in server.exe(DAO350.DLL); 0xc0000005:Access Violation. Wenn ich mit ok bestätige bekomme ich eine Dissasemblierung Liste wo der Marker bei folgender Zeile steht: 044C65D3 cmp dword ptr [eax+38h],0 Ich hoffe Du kannst was damit anfangen. Variablenüberwachung per debugger ok, mit dem Debugger schrittweise den Fehler suchen auch ok aber mehr habe ich mit dem Debugger nicht drauf.
-
Ich habe sogar schon versucht die Klasse unter einem andern Namen ein zweitesmal in das Projekt aufzunehmen und separat für jeden Thread einmal abzuleiten, der gleiche Fehler.
-
Hallo, ich habe da eine Problem mit Threads. Mein Progr. soll mit einem Thread permanten auf einem Socket horchen.Bei einkommenden Daten sollen diese verarbeitet und in einer Datenbank gespeichert werden.Mit einem andern Thread möchte ich paralell dazu einen Dialog öffnen können und dort die gleiche Datenbank bearbeiten. Mal abgesehen davon das ich mir noch gedanken über den zeitgleichen Zugriff machen muß scheitere ich schon viel früher. Ich kann beides separat aufrufen und nutzen allerdings wenn z.B. Daten auch dem Socket eintreffen und verarbeitet werden und ich anschließend den Dialog öffne dann stürzt das programm. Umgekehrte Reihenfolge genauso. Die Fehlermeldung Vorgang read konnte auf dem Speicher nicht durchgeführt werden ist in beiden Fällen auf der gleichen Adresse. Der Fehler liegt beim Zugriff auf die Recordset und meiner eigenen von CDaoDatabase abgeleiteten Klasse. Laut "Visual C++6.0 Inside" ist der threadübergreifende Zugriff auf MFC Objekte nicht möglich (außer bei einfachen Objekten wie CString oder ähnlich). Jetzt meine Frage, wie bekomme ich den Zugriff auf meine Recordsets hin ? Da kann ich mir nicht vorstellen das das nicht klappen soll. Wie bekomme ich zewi unterschiedliche Adressräume hin ?
-
Hallo, ich möchte ein Menue zur Laufzeit erstellen. Die Sache mit dem UPDATE_UI-Handler hatte ich bereits gefunden Ich möchte einen anderen Weg gehen. Ich bilde eine eigene Klasse um dort die Menuesteuerung zu verwalten und soweit bin ich: m_menue.LoadMenu(128) m_menue.DestroyMenu(); m_menue.CreateMenu(); m_menue.AppendMenu(MF_STRING,1,"Oberste Ebene"); SetMenu(m_hwnd,m_menue.m_hMenu); Ich brauche eigentlich eine gescheite Anleitung welche Auskunft über folgende Punkte gibt : 1.)Wie erstelle ich Menuepunkte welche, wenn ich Sie anklickt, das Untermenue öffnet. 2.)Wie erstelle die Untermenuepunkte ? 3.) Wie gestalte ich einen EventHandler welchen ich abfangen kann wenn das ein Menuepunkt angeklickt wurde ? Bitte Simpel erklären, so nach dem Moto für Dummies. Ich suche inzwischen seit einigen Tagen und habe hier zieh Schnipsel und blicke nicht mehr durch.
-
Die Sache mit dem UPDATE_UI-Handler hatte ich bereits gefunden und ausprobiert.Funktioniert zum Texte & Hacken setzen, unable legen und alles.In einem Füheren Topic hattest Du erklärt das die Befehle welche unter diesem Handler ausgeführt werden nicht zu umfangreich sein sollten das diese Methode wohl öfter aufgerufen wird.Ich möchte den anderen Weg gehen. Ich würde gerne nachdem ich mir jetzt dem HWND Handler besorgen konnte die Menuestruktur unter "InitInstance()" 1 mal aufrufen.Es funktioniert auch fast alles bis auf den Befehl das ich die Menuepunkte nicht grau bzw. unable legen kann. Der Befehl: m_Menue->EnableMenuItem(32785,MF_GRAYED); Ich meine ich hätte irgenwo mal was gelesen das bei diesem Befehl noch etwas zu beachten ist. So in etwa wie bei Editfelder UpdateData().Kann mich auch täuschen...
-
Hallo, Ich möchte unterschiedliche Menueeinträge gestalten. habe auch schon in einigen Beiträge Anhaltspunkte gefunden. Aber es funktioniert nicht so ganz.Die Links welche in früheren Topics stehen und zur Lösung führen sollen sind tot. Benutze VC6.0 folgender Code aus Beispielen funktioniert nicht CMenu* mmenu = GetMenu(); CMenu* submenu = mmenu->GetSubMenu(0); submenu->EnableMenuItem(ID_MENU, MF_BYCOMMAND | MF_ENABLED); Fehlermeldung :GetMenue funktioniert keine 0 Parameter. Ich muß einen HWND Handler übergeben und hier ist mein Problem: Ich weiß nicht wie ich mir den Handler besorge, das ist schon immer mein Probem gewesen was ich noch nie geschnallt habe. im Grunde ist mir klar das ich, um etwas zu steuern was schon da ist, desen Adresse oder irgend etwas brauche was auf dieses,nennen wir es mal Objekt,zeigt. Gibts eine allgemeine Erklärung wie ich mir einen Handler besorge? Für eine ausführliche Erklärung bin ich dankbar. Danke
-
GUI Access97 & "Create Table" unterschiedliche Wirkung
schorschi antwortete auf schorschi's Thema in C++: Compiler, IDEs, APIs
Super funtioniert mit varchar. Weißt Du wo ich weitere infos speziell über Access 97 und SQL Statements herbekomme, wenns geht in deutsch ?Mein Material beschäftigt sich mehr mit der GUI von '97 Danke nochmal Joerg -
Hallo, folgendes Problem. Ich sende per VC6.0 SQL Statements zum erstellen eines *.mdb Files und Tabellen ect. Jetzt habe ich folgenden seltsamen Effekt: Die erstellten Textfelder in den Tabellen verhalten sich nicht so wie als wenn ich die Tabellenfelder "zu Fuß" über die Benutzeroberfläche unter Access erstelle. Ich bin es gewohnt wenn ich ein Textfeld mit einem Wert fülle , dann steht nur der Wert den ich gesetzt habe in dem Feld und direkt dahinter ist der String terminiert. Wenn ich aber die Tabellen über die Funktion Create bilde und mit einem String belege, so wird der String nicht terminiert sondern je nachdem wie groß ich das Textfeld angelegt habe mit Leerstellen gefüllt. Soweit ich sagen kann ist es kein Effekt der beim Wertzuweisen über VC6.0 auftritt. Wenn ich die GUI von Access benutze um das mit create gebildete File mit Werten zu belegen hab ich den selben Sch..ß. Es muß also beim erstellen mit dem Create Befehl liegen: m_strSql="CREATE TABLE Kunde ([iD] counter,"; m_strSql+="[Vorname] char (50),"; m_strSql+="[Nachname] char (50),"; m_strSql+="[strasse_Nr] char (100),"; m_strSql+="[PLZ] char (50),"; m_strSql+="[Ort] char (50),"; m_strSql+="constraint prim_s_mit primary key(ID))"; m_database.Execute(m_strSql); Vielleicht die DAO Version ? keine Ahnung, habe auf jeden Fall keinen Nerv die Texte nach dem auslesen aus der Datenbank nochmals zu bearbeiten.
-
Gültigkeitsbereich Variablen
schorschi antwortete auf schorschi's Thema in C++: Compiler, IDEs, APIs
Ja ziehmlich verwirrend meine Beschreibung, aber durch den Versuch es Dir nochmals genauer zu beschreiben, habe ich die Lösung gefunden. Ich stand da wie der Ochse vom Berg. Im Konstruktor der abgeleiteten Klasse habe ich die Möglichkeit, was ich merkwürdigerweise erst jetzt bemerkt habe, der Instanz einen Pointer vom Typ CDaoDatabase mitzugeben, also mein fehlende Bindung sozusagen. Ist schon manchmal witzig wenn man sein Problem versucht genau zu schildern, daß man auf die Lösung kommt:rolleyes: . Hättest Du nicht gefragt hätte ich nicht versucht erneut zu beschreiben. Also danke -
Gültigkeitsbereich Variablen
schorschi antwortete auf schorschi's Thema in C++: Compiler, IDEs, APIs
Ich versuche mal den Sinn wiederzugeben, Syntaktisch totaler Schrott aber ich hoffe man kann den Sinn verstehen: class A { public: Methode_open_A(); Methode_tu_was_A(); int a,b,c; A() { a=1; b=2; c=3; } } /////////////////////////////////////////////////////// class B abgeleitet von A { public: int a,b,c; CDaoWorkspace m_wk; CDaoDatabase m_db; Methode_open_B();//überschrieben und ich verwende in dieser Methode zum Beispiel Variable d und e zum öffnen . Methode_tue_was_A();//aus der abgeleiteten Klasse A } B():m_database(&m_wk),m_recordset(&m_database) { a=10; b=20; c=30; CDaoDatabase m_database(&m_wk); CDaoRecordset m_recordset(&m_database); } } /////////////////////////////////////////////////////////// Class C { public: B b: C() { .. }; } b.Methode_open_B()//Die Datenbank öffnen und das recordset b.a;//Mit diesem zugriff kann ich auf die Variable der klasse B zugreifen also a==10, was ich brauche ist aber a==1; Wenn ich die Methode_tue_was_A() verwende so bekomme ich einen Fehler.Da ich nicht den korrekten Gültigkeitsbereich habe. Ich habe in meiner Klasse B die Datenbank mit einer 'überschriebenen' Methoden geöffnet bekommen aber ich kann nicht über vorhandene Methoden weiter mit der Datenbank arbeiten. Da liegt daran das ich innerhalb der neuen Methode ,mit der ich überschrieben habe, mich weder auf bisherige Variablen der Instanz zurückgreife noch Werte hinterher weitergebe ich habe also keinen Bezug zu der abgeleiteten Klasse. Ich hätte genausogut eine neue leere Klasse schreiben können was ich nicht möchte. Wie gesagt erschlagt mich nicht für die Syntax, ich hoffe ich habe mein Problem etwas besser geschildert sorry für die langen Texte -
Ich muß nochmal nerven. Für die Beschreibung muß ich wohl etwas weiter ausholen. Ich habe ein *.mdb File incl. Kennwort erstellt. Ich habe inzwischen meine Klasse, welche vom Typ DaoRecordset abgeleitet ist, soweit geändert das ich Methoden habe welche mir das *.mdb File über eine Variable von Typ CDaoDatabase das File öffnet. Es ist mir auch möglich innerhab dieser Klasse Variablen vom Typ recordset zu bilden und Abfragen zu formulieren und auszuführen, eigentlich alles ok. Ich möchte aber gerne so wie vorher arbeiten. Eine Instanz von meinem recordset bilden diese öffnen und über diese Instanz auf die Variablen des *.mdb zugreifen. Ich möchte nicht über die Sql abfragen mit der db arbeiten. Meine Frage ist nun, es muß doch möglich sein der Instanz die Eigenschaften der innerhalb der Klasse gebildeten Variable vom Typ recordset welche ich auch geöffnet habe zuzuweisen. Es müßte eine Frage des Gültigkeitsbereichs sein. Wenn ich z.B. meine Variable vom typ Recordset innerhalb der Klasse benutze und anschließen die Variable der Instanz von meiner Klasse recordset so sind es zwei unterschiedliche. Vielleicht ist mein Ansatz auch falsch. Ich würde mich freuen wenn die Antworten etwas ausführlicher sind, da ich in KEINER Ausbildung oder Studium bin. Das Internet und Bücher sind leider meine einzigsten Quellen. Danke im voraus Joerg
-
Dann schon mal ein paar Stichwörter, danke
-
Habe ich es richtig verstanden ? Deklaration der Variablen in der Klassendeklaration und die Initialisierung erfolgt aber in der Initialisierungsliste ? Was muß ich den anstellen wenn ich in einer Abgeleiteten Klasse keinen Konstruktor habe ?
-
Hallo habe da ein kleines Verständnissproblem. Wie bekomme ich in einer Klasse eine eine Variable deklariert UND initialisiert, so dass alle Methoden der Klasse auf diese und Ihren Wert zurückgreifen können. konkret ich muß folgende Variablen erstellen : CDaoWorkspace m_wk; CDaoDatabase m_db(&m_wk); CDaorecordset m_rs(&m_db); Wenn ich über den Klassenassistenten die Variablen hizufügen so kann ich sie nicht initialisieren. Joerg
-
DAO create Database open Passwortschutz
schorschi antwortete auf schorschi's Thema in C++: Compiler, IDEs, APIs
Was ist den besser? Ein Datenbankkennwort oder Benutzer anlegen und Kennwort zuweisen? Ich dachte das das Zuweisen eines Datenbankkennwortes nicht so ein Verwaltungsaufwand ist, außerdem habe ich gerade mal zwischen Tür und Angel ausprobiert dem USER Admin ein neues Kenntwort in der Benutzeroberfläche von Access zu geben und habe festgestellt das ich schon beim Öffnen von Access nach dem Kennwort gefragt werde,eigentlich logisch.. Das ist nicht Sinn der Sache. Im Link von winsoft den Du geschickt hast steht eventuell schon etwas drin was ich umsetzen kann. Schon mal danke. Bin für weitere Links und Anregungen zu dem Thema dankbar... -
DAO create Database open Passwortschutz
schorschi antwortete auf schorschi's Thema in C++: Compiler, IDEs, APIs
Ich verwende VC 6.0 -
Hallo miteinander, ich möchte gern per C++ ein .mdb File mit Passwort erstellen, Tabellen herstellen, Werte per Insert einfügen naja halt verwalten. Augenmerk sollte dabei auf das erstellen mit Passwort gelegt sein. Ich bekomme es zwar hin das mbd File zu erstellen und zu öffnen aber ohne Passwortschutz. bevor ich mich den SQL Statements widme möchte ich aber ers mal das vernünftig hinbekommen. Kann mir jemand ein paar Codeschnipsel oder Links nennen damit ich mich weiter durchbeissen kann ? Mit MSDN und englischer Literatur schlag ich mich seit Tagen ohne Erfolg rum und verstehe nur Bahnhof. Schwerpunkt das erstellen einer Datenbank mit Paßwortschutz und das Öffnen selbiger. Wenns geht ein simples Beispiel. Danke
-
*.jpg in SDI/MDI integrieren
schorschi antwortete auf schorschi's Thema in C++: Compiler, IDEs, APIs
Ja danke, mit der Klasse CPicture habe ich es hinbekommen. -
Hallo miteinander, Ich möchte in einem Document in einer SDI Anwendung mehrere *.jpg Dateien einbauen, ich weiß nicht wo ich ansetzen soll oder die vorgehensweise. Denke mal grob übern Daumen Grafik laden, skalieren und ausgeben auf dem document. Zeichnen und Schreiben im Document hat soweit alles funktioniert. Habe schon einige Themen hier im Forum gefunden, aber immer wenn Sie anscheinend paßten wurden Sie nicht zuende geführt. Gruß Joerg
-
DAO Übergabe Datenbankkennwort
schorschi antwortete auf schorschi's Thema in C++: Compiler, IDEs, APIs
Naja, ich bin bis jetzt den Weg gegangen das von CDaoRecordset abgeleitet habe und mit den Simplen Navigationsbefehlen rumgekaspert habe. Bei Open() habe ich keine Übergabeparameter genutzt. Ich weiß aber, das wenn ich direkt mit SELECT Anweisungen arbeiten möchte, ich nicht drum rum komme mich da tiefer einzugraben. Hast du 'ne Empfehlung wo ich eine gute deutsche Dokumentation bekomme über das Thema DAO ? Die Onlinehilfe von MSDN find ich nicht so gut... Gruß Joerg -
Hallo Miteinander, ich greife in meinem Projekt über die DAO Schnittstelle auf ein MB File zu. Wo und in welcher Form muss ich, nachdem ich jetzt die Datenbank mit einem Kennwortschutz ausgestattet habe, das Kennwort angeben und mit übergeben ? Über den Klassenassi bekomme ich nur ein Popup mit der Meldung kein gültiges Kennwort, ist ja logisch da ich es noch nicht bekannt gegeben habe. Gruß Joerg
-
Wie gesagt, danke für die Hilfe
-
Wie gesagt, ich möchte den ursprünglichen Fehler beheben. Ich habe mir inzwischen die Dateien angeschaut und muss sagen das in allen Dateien die Reihenfolge des includes der "recource.h" in Ordnung ist. In allen Dateien ist die recource.h ob direkt oder indirekt vor allen anderen mit eingebunden. Ich habe jetzt, indem ich direkt in die CPP des Dialoge die resource.h nochmals eingebunden habe den Fehler beseitigt, aber ich traue den Braten nicht so ganz. Bei rund 7 Dialogen klappte alles automatisch und jetzt nicht mehr ?!? Der angebliche 'nicht deklarierte Bezeichner' im Quelltext soll laut Fehlermeldung dieser hier sein : enum { IDD = IDD_DIA_AUFTRAG_WAEHLEN }; Wenn ich jetzt einfach mal Dialoge zum Testen bilde und einfügen möchte bekomme ich immer dieselbe Fehlermeldung, wie beschrieben. Vielleicht noch eine Idee ? Wie gesagt, der Fehler ist erst mal beseitigt, vielen danke schon mal, aber mich interessiert das warum...
-
Sorry aber da kann ich nix mit anfangen. Vielleicht ein zwei Sätze zur erklärung ? Soweit meine Kenntniss: In der Headerdatei der App. und in der rc-datei sind die #include "resource.h" noch eingetragen. In der resource.h finde ich die Konstanten Werte von z.B. den Dialogen. Wenn ich diese verwende bekomme ich andere Fehlermeldungung und ausserdem bekomme ich den ursprünglichen Fehler nicht beseitigt. Gruß Joerg
-
Hallo miteinander, ich sitze gerade an einem kleinen Projekt und kurz vor fertigstellung bin ich auf einen kleinen aber unüberwindbaren Fehler gestoßen. Ich möchte einen Dialog wie so oft per DoModal() zu starten. Ist egal in welcher Klasse ich versuche eine Variable auf die zu öffnende DialogKlasse zu bilden , ob App,Doc,View oder die selbst erstellten Klassen, ich bekomme immer sobald ich die Dialogklasse include die 2 folgenden Fehlermeldungen : error C2065: 'IDD_DIA_AUFTRAG_WAEHLEN' : nichtdeklarierter Bezeichner error C2057: Konstanter Ausdruck erwartet Ich muß mir irgendwas gelöscht bzw zerschoßen haben den im Backup von vor 7 Tagen klappt meine Vorgehensweise noch einwandfrei. Bin für jede Hilfe dankbar Gruß Joerg