как сделать Update базы данных и проблема с Combobox.
и
как быть с Комбобокс
если в нем выбирать строки введенные заранее, проблем
нет, а если ввести строку в Run-time он кричит что выбора не было,
и что строка пуста
Sorry, if I understand your problem not correct
Цитата:
Originally posted by geoneo
Привет я с вазами равотаю через ADO и ползуюс SQL query.А про combobox Я не понял , что спомошю GetWindowText не дастат строку?
Sorry, if I understand your problem not correct
Привет я с вазами равотаю через ADO и ползуюс SQL query.А про combobox Я не понял , что спомошю GetWindowText не дастат строку?
Sorry, if I understand your problem not correct
Спасибо за ответ
Мне нужно написать базу для персонала (SQL Server 2000 Personal)
интерфейс на VC++
и мне нужно сделать такие возможности как Добавить данные нового рабочего, Удалить, Изменить данные определенного персона (например изменить Имя, зарплату)
и Поиск в Базе
а с Комбо(Drop-Down ComboBox) у меня такая проблема:
если выбирать строку из заранее введенных строк (Properties->Data) GetCurSel()!=CB_ERR,
а если вводить текст в комбобокс GetCurSel()=CB_ERR
if((x=m_AYearC.GetCurSel())==CB_ERR)
{
m_AYearC.GetWindowText((LPSTR)(LPCSTR)m_Yearbuf, x);
if(m_Yearbuf.GetLength()==0){
MessageBox("Пусто");
}
}
else
{
m_AYearC.GetLBText(x, m_Yearbuf);
}
Regards geoneo
если выбирать из списка (item1, item2, item3) то присваивает (String переменным) значение в Комбо
а как сделать так чтоб присваивал переменным то что вводишь в Run-time.
например: item4.
void test::OnKillfocusCombo1()
{
m_cbBox.GetWindowText(m_strBox);
CString tt;
int n=m_cbBox.GetCount();
if(m_strBox.GetLength()>0)
{
for(int i=0;i<n;++i)
{
tt=_T("");
m_cbBox.GetLBText(i,tt);
if(m_strBox.CompareNoCase(tt) == 0)
goto E;
else
continue;
}
m_cbBox.AddString(m_strBox);
}
E:;
}
this code will add not empty and different strings to combobox.
I hope this is what you want.
geoneo
твой код оказался очень полезным
я создал (пытаюсь) программу которая читает из базы через ADO
Я делаю это по книжке, но моя программа не открывает ADO
то есть, я проверял в Дебаге и она в OnNewDocument() перепрыгивает тело if (SUCCEEDED(hr))
у меня
Win2000 Professional
msado15.dll
1.
#include <comdef.h>
#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename( "EOF", "adoEOF" )
2.
BOOL CADOMFC1App::InitInstance()
{
AfxOleInit();
.
.
}
3.
public:
BOOL m_IsConnectionOpen;
_ConnectionPtr m_pConnection;
4.
BOOL CADOMFC1Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
HRESULT hr;
hr = m_pConnection.CreateInstance( __uuidof( Connection ) );
if (SUCCEEDED(hr))
{
hr = m_pConnection->Open(
_bstr_t(L"Provider=sqloledb;Data Source=;Integrated Security='SSPI';Initial Catalog=MyBase;User Id=;Password=;"),
_bstr_t(L""),
_bstr_t(L""),
adModeUnknown);
if (SUCCEEDED(hr))
{
m_IsConnectionOpen = TRUE;
}
}
return TRUE;
}
So first you must put in stdAfx.h file after #endif // _AFX_NO_AFXCMN_SUPPORT this:
#import "msadox.dll" no_namespace rename("DataTypeEnum","ADOXDataTypeEnum")
#import "Oledb32.dll" raw_interfaces_only exclude("IDBPromptInitialize", "IDataInitialize") no_auto_exclude
#import "Msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF").Save it and compile stdAfx.cpp file(right click at the stdAfx.cpp and there you can find item).So you have link with importand DLL files.Now I show you simple function that makes connection with DB.
void CPreConvDlg::MakeConnection(CString sConnectStr)
{
CString sRootDB;//connection string for example
//_T("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=asusserver1");
BOOL bExist = FALSE;
ADODB::_ConnectionPtr pConnSrc = NULL;
try
{
// Source DB
pConnSrc.CreateInstance(__uuidof(ADODB::Connection));
pConnSrc->Open(_bstr_t(sRootDB), _bstr_t(L""),
_bstr_t(L""), ADODB::adConnectUnspecified);
}
catch(...)
{
}
here a function that you need and after this you must close connection
if(pConnSrc)
{
if(pConnSrc->State == ADODB::adStateOpen)
pConnSrc->Close();
}
By the way you must find MS access SDK 2.6 (just make download from microsoft.com).Install it ,there is ADO help and see it.If you have any question don't hesitate ask me.
geoneo.
Ты не мог бы помочь мне в следующем
Я пытаюсь разобраться в Word Automation
точнее я пытаюсь сделать следующее:
я сделал шаблон документа в Word
и хочу туда вставить текст, то есть например,
после "ИМЯ-" в Word'e поставить "ИМЯ-Султан",
"Фамилия-"-> "Фамилия-Саков"...
в шаблоне уже есть "Имя","Фамилия-"..
а данные я беру из базы.