Spalteninformationen auslesen



  • Hi, habe mir jetzt einiges durchlesen und konnte nicht finden wonach ich suchte.

    Welche Möglichkeiten gibt es Tabellen sowie Spalteninformationen (Datentyp,MayNull,Unique,usw.) auszulesen. Gestaltet sich das schwierig oder ist es mit viel Aufwand verbunden ?

    Danke im voraus.



  • Ist einfach. Aufwand ist relativ.



  • ok der zweite teil der frage ist nicht gut formuliert, bekomme trotzdem eine antwort auf den ersten teil - wie ?



  • Du meinst also das der erste Teil gut formuliert ist.

    Da fällt mir z.B. schonmal auf das du nichtmal geschrieben hast welches RDBMS. Welche API. Welches BS.



  • RDBMS sollte egal sein. was hat die API damit zutun ? und erstrecht das BS ?
    - schade das mir hier niemand weiterhelfen kann/will.



  • Wir wollen ja, können dank deiner mangelnden Infos aber nicht...

    Ist Datenbankabhängig, meist ein simples SQL-Statement (select * from syscat.columns where tabname = 'MEINE_TABELLE' z.B. bei DB2).

    Die Frage nach dem Api kam wohl deswegen, weil es API's gibt, die diese Informationo unabhängig von der verwendeten Datenbank zur Verfügung stellen (z.B. SQLColunns im ODBC-API).



  • HansPeter schrieb:

    RDBMS sollte egal sein. was hat die API damit zutun ? und erstrecht das BS ?
    - schade das mir hier niemand weiterhelfen kann/will.

    Die Lösung ist: die, die dir deine Datenbank anbietet.



  • Wenn du im SQL-Standard nicht findest um diese Infos zu bekommen dann gibt es eben nichts.
    Alles andere ist RDBMS-Abhängig. Jedes RDBMS hat eine API.
    Sonst könnte man sie ja auch nicht ansprechen.

    Du kannst mir aber auch glauben das es nicht meine Absciht ist dir nicht zu helfen.
    Deine Frage war in etwa: Ich habe hgier ein Betriebssystem. Wie bekomme ich nun heraus welches.



  • gut dann versuche ich mal es genauer zu beschreiben.
    BS w98 oder w2k. DB access97/2000.
    mehr informationen habe ich leider nicht.



  • unsigned char svColName[256];
    	SWORD swCol,swType,swScale,swNull;
    	UDWORD pcbColDef;
    
    	int nRet= SQLDescribeCol( m_hStmt,n,svColName,256,&swCol,&swType,&pcbColDef,&swScale,&swNull );
    
    	if (nRet == SQL_ERROR)
    		return "KEIN WERT";
    
    	CString returnwert;
    	returnwert.Format("%s",svColName);
    

Anmelden zum Antworten