Solved

How can I bind dtpicker to oracle

Posted on 2004-10-16
5
472 Views
Last Modified: 2013-11-20
I want to bind datetimepicker control to oracle database
0
Comment
Question by:vijay_visana
  • 2
  • 2
5 Comments
 
LVL 6

Expert Comment

by:nabehs
ID: 12331526
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
 
LVL 7

Author Comment

by:vijay_visana
ID: 12337124
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
 
LVL 6

Accepted Solution

by:
nabehs earned 500 total points
ID: 12355458
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
 
LVL 7

Author Comment

by:vijay_visana
ID: 12356272
thnx nabehs
I'll try it and let u know about it
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Define unique primary key 9 95
Detect CR LF to each line 12 170
canBalance challenge 34 96
noX challenge 17 129
Introduction: Dynamic window placements and drawing on a form, simple usage of windows registry as a storage place for information. Continuing from the first article about sudoku.  There we have designed the application and put a lot of user int…
Introduction: Load and Save to file, Document-View interaction inside the SDI. Continuing from the second article about sudoku.   Open the project in visual studio. From the class view select CSudokuDoc and double click to open the header …
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question