• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 482
  • Last Modified:

How can I bind dtpicker to oracle

I want to bind datetimepicker control to oracle database
0
vijay_visana
Asked:
vijay_visana
  • 2
  • 2
1 Solution
 
nabehsCommented:
can you give more information? I can help, but do you need to populate the edit box of the datetime picker with a value from the database?
0
 
vijay_visanaAuthor Commented:
yes I want to poulate editboox of dtpicker from date stored in oracle table as well as save the changed one back to oracle table
0
 
nabehsCommented:
1. In Class View, Right Click, New Class. From the Dialog Combo, select Generic Class, Enter the name CQuery1 and press OK. A new class is created with query1.cpp and query1.h files
2. Open query1.h file
3. Assume that you have the table Users with the following fields
mydate : date

4. Modify the class CQuery1 in query1.h to the following
class CQuery1
{
public:
    CQuery1();
    virtual ~CQuery1();

    DBTIMESTAMP m_mydate;

BEGIN_COLUMN_MAP(CQuery1)
    COLUMN_ENTRY(1, m_mydate)
END_COLUMN_MAP( )
};

5. In stdafx.h add the following line:
#include <atldbcli.h>

6. Add the following function to get and save the date

#include "query1.h"
void GetMyDate(CSession& session, CString& strKeyCol, CString& strMyDate);
void SaveMyDate(CSession& session, CString& strKeyCol, CString& strMyDate);

void GetMyDate(CSession& session, CString& strKeyCol, CString& strMyDate)
{
    CoInitialize(NULL);

    CCommand<CAccessor<CQuery1> > rs;

      HRESULT hr;

    CString strQuery;
    strQuery.Format("SELECT mydate FROM mytable WHERE keycolumn = '%s'", LPCTSTR(strKeyCol));
    // without error checking
    hr = rs.Open(session, LPCTSTR(strQuery));
      if(rs.MoveNext() == S_OK)
      {
            COleDateTime dt(rs.m_mydate.year, rs.m_mydate.month, rs.m_mydate.day,
            rs.m_mydate.hour, rs.m_mydate.minute, rs.m_mydate.second);
            strMyDate = dt.Format("%m/%d/%Y");
      }

      rs.Close();

    CoUninitialize( );
}

void SaveMyDate(CSession& session, CString& strKeyCol, CString& strMyDate)
{
    CoInitialize(NULL);

    CCommand<CNoAccessor, CNoRowset> cmd;

      HRESULT hr;

    CString strQuery;
    strQuery.Format("UPDATE mytable SET mydate = '%s' WHERE keycolumn = '%s'", LPCTSTR(strMyDate), LPCTSTR(strKeyCol));
    // without error checking
    hr = cmd.Open(session, LPCTSTR(strQuery), NULL, NULL, DBGUID_SQL, false);

      cmd.Close();

    CoUninitialize( );
}

7. add the following data member to the class
CDataSource m_ds;
CSession m_session;

8. Open the connection at program start

      CoInitialize(NULL);

    CString strConnectionString = "Provider=MSDAORA.1;Data Source=MyDatabase;User Id=userid;Password=userpassword;";
    // Replace MyDatabase with your database name
    // Replace userid with the user id
    // Replace userpassword with password

    HRESULT hr;

    // without error checking
    hr = m_ds.OpenFromInitializationString(strConnectionString.AllocSysString( ));
    hr = m_session.Open(m_ds);

9. on dialog start fill the datetime picker with the value from the database by calling GetMyDate by passing m_session as the first parameter

10. on lost focus of the datetime picker save the value to the database by calling SaveMyDate by passing m_session as the first parameter

11. On program end, close the session and connection
m_session.Close();
m_ds.Close();
0
 
vijay_visanaAuthor Commented:
thnx nabehs
I'll try it and let u know about it
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now