03. december 2003 - 13:30 
												Der er
									12  kommentarer													og 					1  løsning									 
									
		 
		
			
DBTIMESTAMP til CString eller CTime 
			Hej Jeg returner data fra en MSSQL á type datetime til et mfc program. I recordset beskrives dataene der returneres af type DBTIMESTAMP Mit problem er hvordan laver jeg datetime/DBTIMESTAMP om til CTime eller CString i C++
					
		
	 
                            
Annonceindlæg fra Conscia 
 
 
	
		
								
					
				03. december 2003 - 13:43  
				#1 
						
		 
		
			I din DoFieldExchange kan du bruge RFX_Date til at mappe til en COleDateTime, den har en ParseDateTime metode der kan formatere datoen til en CString.
		
		
	 
	
		
								
					
				03. december 2003 - 14:09  
				#2 
						
		 
		
			Hvor finder jeg DoFieldExchange!  jeg bruger ole db til at kommunikerer med SQL'en. Kan du ikke vise et lille kode eks.
		
		
	 
	
		
								
					
				03. december 2003 - 14:19  
				#3 
						
		 
		
			Hvilken type objekt bruger du til at repræsentere et recordset?
		
		
	 
	
		
								
					
				03. december 2003 - 14:41  
				#4 
						
		 
		
			Jeg ved ikke hvad du mener med objekt. jeg laver følgende i Document filen i MFC programmet: eks. erklærer CTest   m_Test; og så i cpp filen hvor dataene skal brugers! CTest* pT =&GetDocument()->m_Test; if(pT->Open() == S_OK) o.s.v....!
		
		
	 
	
		
								
					
				03. december 2003 - 14:46  
				#5 
						
		 
		
			Hvad dækker CTest over? Hvordan hiver du data ud af et recordset?
		
		
	 
	
	
	
		
								
					
				03. december 2003 - 15:01  
				#6 
						
		 
		
			Er ikke sikker! men CTest er en klasse i recordset'et som jeg erklærer i document filen. public: CTest  m_Test; for at hive data ud, laver jeg en pointer (pT) CTest* pT =&GetDocument()->m_Test; //Pointer til recordset if(pT->Open() == S_OK) //åbner forbindelsen til sql    while(pT->MoveNext() == S_OK)//returner alle kolonner en efter en!        pT->m_Data; //data her er et lille udsnit af det første i mit recordset! // GobaleStatus.H : Declaration of the CGobaleStatus class #ifndef __GOBALESTATUS_H_ #define __GOBALESTATUS_H_ class CGobaleStatusAccessor { public:     LONG m_Id;     DBTIMESTAMP m_StartDato;     DBTIMESTAMP m_SlutDato;     TCHAR m_GobalStatus[51]; BEGIN_COLUMN_MAP(CGobaleStatusAccessor)     COLUMN_ENTRY(1, m_Id)     COLUMN_ENTRY(2, m_StartDato)     COLUMN_ENTRY(3, m_SlutDato)     COLUMN_ENTRY(4, m_GobalStatus) END_COLUMN_MAP()     // You may wish to call this function if you are inserting a record and wish to     // initialize all the fields, if you are not going to explicitly set all of them.     void ClearRecord()     {         memset(this, 0, sizeof(*this));     } };
		
		
	 
	
		
								
					
				03. december 2003 - 15:05  
				#7 
						
		 
		
			Jamen der må da være en definition på CTest et eller andet sted!!! ala: class CTest : public whatever {   // metoder mm. };
		
		
	 
	
		
								
					
				03. december 2003 - 15:09  
				#8 
						
		 
		
			noget ligne det her? class CGobaleStatus : public CTable<CAccessor<CGobaleStatusAccessor> > { public:     HRESULT Open()     {         HRESULT        hr;         hr = OpenDataSource();         if (FAILED(hr))             return hr;         return OpenRowset();     }     HRESULT OpenDataSource()     {         HRESULT        hr;         CDataSource db;         CDBPropSet    dbinit(DBPROPSET_DBINIT);         dbinit.AddProperty(DBPROP_AUTH_PASSWORD, OLESTR("eMesUssiM"));         dbinit.AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, false);         dbinit.AddProperty(DBPROP_AUTH_USERID, OLESTR("MissUseMe"));         dbinit.AddProperty(DBPROP_INIT_CATALOG, OLESTR("SKP-DataBase"));         dbinit.AddProperty(DBPROP_INIT_DATASOURCE, OLESTR("DC2"));         dbinit.AddProperty(DBPROP_INIT_LCID, (long)1030);         dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4);         hr = db.Open(_T("SQLOLEDB.1"), &dbinit);         if (FAILED(hr))             return hr;         return m_GobaleStatus.Open(db);     }     HRESULT OpenRowset()     {         return CTable<CAccessor<CGobaleStatusAccessor> >::Open(m_GobaleStatus, _T("dbo.GobaleStatus"));     }     CSession    m_GobaleStatus; };
		
		
	 
	
		
								
					
				03. december 2003 - 15:21  
				#9 
						
		 
		
			COleDateTime d(m_StartDato.year, m_StartDato.month, m_StartDato.day, m_StartDato.hour, m_StartDato.minute, m_StartDato.second); CString strDate; d.ParseDateTime(strDate);
		
		
	 
	
		
								
					
				03. december 2003 - 15:52  
				#10 
						
		 
		
			Det giver ingen fejl når jeg builder programmet, men det virker ikke! Der står ikke noget i strengen!
		
		
	 
	
		
								
					
				03. december 2003 - 16:00  
				#11 
						
		 
		
			jeg fandt lige noget om ParseDateTime() i hjælpen til Visual ParseDateTime Reads a date/time value from a string and sets the value of COleDateTime.
		
		
	 
	
		
								
					
				03. december 2003 - 16:09  
				#12 
						
		 
		
			Jep, jeg huskede forkert... Du skal bruge Format metoden
		
		
	 
	
		
								
					
				04. december 2003 - 08:18  
				#13 
						
		 
		
			Takker :-)
		
		
	 
	
		
	
		
		
		
			
			Kurser inden for grundlæggende programmering