Datenbank ist plötzlich schreibgeschützt (Unterschied CDatabase::Open zu OpenEx??)



  • Dankeschön, ich gehe das Morgen mal durch. 🙂

    Ich habe kein XP, nur 2000 - mal gucken ob es da auch was gibt.
    Sollte es tatsächlich an meiner Installation liegen, dann teste ich es mal auf dem Zielsystem (Win98).
    Wenn es da geht muss ich im Debugmodus eben Open nehmen und im Release OpenEx. 🙄



  • Mir ist heute Morgen noch etwas eingefallen und das funktioniert. 🙂

    Also:
    Ich teste mit dem OpenEx, ob die Datenbank verbunden ist und hinterher, wenn es auf jeden Fall funktioniert, mache ich wieder zu und dann mit Open auf.

    try
    		{
    			m_dbAd.OpenEx("DSN=meineDB;UID=sa;PWD=manager", CDatabase::noOdbcDialog);
    		}
    		catch (CDBException* p)
    		{
    // Siehe Post weiter oben
    
    			// Jetzt erstellen
    			if (!SQLConfigDataSource(NULL, ODBC_ADD_DSN, szDriver, arrAttributes))
    			{
    				p->ReportError();
    				p->Delete();
    				return FALSE;
    			}
    			p->Delete();
    		}
    		m_dbAd.Close();
    		m_dbAd.Open("meineDB", FALSE, FALSE, "ODBC;UID=sa;PWD=manager");
    


  • Nicht 100%ig schön, aber wenn es so geht 👍



  • Es geht leider nicht immer. 😞

    Ich müsste noch irgenwie den User, das Passwort, das Protokoll und die Treibersprache mitgeben.
    Irgendwelche Ideen, wie das aussehen muss? Try&Error war bei diesem Befehl irgendwie nie besonders erfolgversprechend. 🙄



  • Hallo,
    bin gerade selbst über dieses Problem gefallen. Die Beiträge im Forum haben mir sehr geholfen. Des Rätsels Lösung (bei mir): Der Recordset muss ein Dynaset sein, kein!! Snapshot. Man kann dies sicherstellen im Konstruktor des Recordsets:
    ....
    m_nFields = 6;
    //}}AFX_FIELD_INIT
    m_nDefaultType = dynaset;
    ....

    Auch ich verwende OpenEx (mit vollständigem Connect-String, d.h. es gibt keinen Eintrag im ODBC-Admin mehr, die Verbindung wird vollständig dynamisch erzeugt).

    Grüße
    CS



  • Welche VS Version nutzt du?
    Im 6er hatte ich nämlich auch immer Probs mit der OpenEx



  • cschroed schrieb:

    Der Recordset muss ein Dynaset sein, kein!! Snapshot.

    Ahja, nur arbeite ich an der Stelle rein mit CDatabase.
    Aber danke für eine weitere Lösung. 👍

    Pellaeon schrieb:

    Welche VS Version nutzt du?
    Im 6er hatte ich nämlich auch immer Probs mit der OpenEx

    Ich arbeite mit VC6 und erstelle die Release mit VC7. Vielleicht sollte ich das nochmal austesten. 🙂



  • Hallo mir hat eure diskussion hier viel geholfen, ich hatte das selbe problem, mit Open klappt es aber nun und dabei hab ich es auch belassen, keine ahnung wo der unterschied liegen könnte, habe ein bisschen geguckt aber nichts gefunden.

    Ciao


Anmelden zum Antworten