tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
815
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mats_MF mats_MF ist offline Mitglied
    Registriert seit
    May 2008
    Beiträge
    24
    Hallo,

    ich möchste anstatt immer ewig in txt Dateien zu schreiben in eine .sql Tabelle schreiben, da man damit ja bekanntlich mehr Möglichkeiten hat. Ich habe sql und auch SQLlite.

    Es muss doch irgendwie gehen sqllite als query brwoser zu nutzen und die Daten dort wie in einer Textdatei mit INSERT etc. in einer Tabelle zu schreiben.

    kann ich da am besten mit CDatabas arbeiten? Wass muss ich dazu includieren?

    Ich muss mir ja einen Strin erzeugen, der die Servereigenschaften für die .sql hat. Mit Sqlliste könnte ich doch dann (wie) die die vorhandene Tabelle wie mit dem QueryBrowser schreiben oder bin ich da auf dem falschen Dampfer um brauch noch Oracle oder Tamino oder so...?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    void CTestdialog::OnBnClickedTestdialogSqltest()
    {
     
    //SetStrin localhost/root/pw/...
        
    ///open(/open.ex(
     
    ...
     
    Insert * from ....
    }

    vielen dank schon mal
     

  2. #2
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    Hi,
    also das einfachste ist es, wenn du für deine Datenbank eine ODBC-Verbindung einrichtest.

    Dann includierst du die Datei afxdb.h.

    Und so schiesst du Daten in deine DB :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
        CDatabase db;
        if( !db.OpenEx("DSN=blabla;UID=blabla;PWD=blabla",0 ) ) {
            // Fehler beim Öffnen!
            return FALSE;
        }
        CString stmt = "insert into blabla ... VALUES(...)"; 
        db.ExecuteSQL(stmt); 
        db.Close();


    Damit solltest du ziemlich schnell Daten einfügen können.

    Wenn du selects ausführen möchtest macht du des dann mit der Klasse CRecordset.. Aber dann kannste ja noch mal was posten wenns da Probleme gibt

    Schönen Gruß,

    Peter
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

  3. #3
    mats_MF mats_MF ist offline Mitglied
    Registriert seit
    May 2008
    Beiträge
    24
    Hi,

    erst mal danke für die Antwort. Bei mir klappt soweit alles öffnen/einfügen/löschen/Positionen löschen/umbenennen etc.

    Da meine SW recht selten neu gestartet wird zwinge ich den DB Dialog von Windows, damit ein Wahl der DB möglich ist.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    //direkt verbinden
    //db.OpenEx( _T("DSN=blubbla;UID=root;PWD=lierumlaarum", Database::useCursorLib|CDatabase::forceOdbcDialog));
        
    if(db.OpenEx( NULL, CDatabase::forceOdbcDialog )==IDOK)
     return 1;
    else
     return 0;
     
    //......
    //erstelle tabellen
    CString Values,InsertString, EPO, EPU, KOPF,Kartenadresse, Sensoradresse;   Values="(Endpunkt int,Spannung int,Strom float,Temperatur int,Prüfplatznummer int,Datum char(50),Kommentar char(100))";
        InsertString="CREATE TABLE "+Table+"_EPO "+Values;
        db.ExecuteSQL(InsertString);
        InsertString="CREATE TABLE "+Table+"_EPU "+Values;
        db.ExecuteSQL(InsertString);
    //...
    //....exportiere diese
    ExportTable="'"+ActualTable+"_EPO.XLS'";    
            InsertString="SELECT * FROM "+ActualTable+"_EPO INTO OUTFILE "+ExportTable;
            db.ExecuteSQL(InsertString);
    //.... füger Werte ein..
    CString Beschreibung, Werte;
        Beschreibung="BESCHREIBUNG";
        Werte = "WERTE";
        InsertString="INSERT INTO "+Table+"_PROTOCOL (Beschreibung,Werte) VALUES ('" + Beschreibung + "', '" + Werte +"')";
        db.ExecuteSQL(InsertString);


    Wo ich am meisten dran gehangen habe, war das Einfügen via Variablen und diese Hochkommatas.
    Umständlich ist nur das Durchlaufen ein Tabelle, um alle werte zu erfassen. Aber es geht auch so.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    
    DBVariant Wert;
        int value,mittlere_SPG=0,min_SPG=999,max_SPG=0;
        float value_flt,mittlerer_STROM=0,min_STROM=999,max_STROM=0;
        int mittlere_TEMP=0,max_TEMP=0,min_TEMP=999;
         CRecordset rs( &db );
        rs.Open( CRecordset::forwardOnly, _T( "SELECT * FROM "+Table+"_EPO"));
      
     //  CODBCFieldInfo
       int n = rs.GetODBCFieldCount( );  //Anzahl der Spalten ermitteln
       int zeile1=0;
       while( !rs.IsEOF() )
       {
          for( int i =0; i < n; i++ )
          {    
        if(i==1)
        {
         rs.GetFieldValue( i, Wert );
         value=Wert.m_boolVal;
     
          if(zeile1==0)
            mittlere_SPG=value;
         mittlere_SPG=(mittlere_SPG+value)/2;
        if(min_SPG>=value)
         min_SPG=value;
        if(max_SPG<=value)
         max_SPG=value;
                            
        }
           }
     
          rs.MoveNext( );
          zeile1++; //hier stehen jetzt auch die Anzahl der zeilen drinne ;-)
       }
       rs.Close( );
     
    //.....

    Vielleicht war ja auch etwas brauchbares für Dich dabei

    Danke & Gruß
     

Ähnliche Themen

  1. Tabelle aus Array erzeugen
    Von Spranta im Forum PHP
    Antworten: 3
    Letzter Beitrag: 10.07.08, 13:28
  2. SELECT ergebniss von Tabelle 1 in Tabelle 2 schreiben MySql
    Von Silver83 im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 23.03.08, 00:04
  3. Mit JS Tabelle erzeugen
    Von kesnw im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 02.02.05, 16:24
  4. HTML Tabelle in Excel Tabelle schreiben
    Von lmarin im Forum HTML & XHTML
    Antworten: 7
    Letzter Beitrag: 19.01.05, 23:34
  5. [VBA + Excel] Werte von Tabelle in neue Tabelle schreiben
    Von Script_Kiddie im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 04.07.04, 11:52