IPB

Здравствуйте, гость ( Вход | Регистрация )


Здесь был Инвандер, он шёл из бани и потирал надпись про зиму!
(5 November 2018 11:07:18) Invader
--
Все живы smile.gif
(23 October 2018 16:01:25) X-Ray come back
--
Здарова, старички! Как жизнь? Кто жив еще?
(19 May 2018 14:17:38) Smite
--
huj na lbu
(3 April 2018 08:08:40) kaspiy
--
музыка
(12 March 2018 10:54:31) m@KS
--
kuku
(11 November 2017 10:53:03) Smite
--
тук-тук!
(27 January 2017 09:57:46) eva123
--
недвижимость
(23 January 2017 16:51:32) qiqiSko
--
вроде кудато перекатились, но тольку незнаю куда
(23 January 2017 16:49:54) qiqiSko
--
народ куда подевались эти два сайт net.pnz.ru forum.pnz.ru
(11 November 2016 08:47:20) NRokudaime
--
Вот это да!
(19 September 2016 13:49:38) Smite
--
эх вспомнить бы щас былые БКшные времена!
(9 June 2016 10:02:16) qiqiSko
--
ayy lmao
(20 May 2016 19:44:01) Ev.
--
////
(23 June 2014 13:25:02) DeaD MoroSe
--
Армону и Инву передам приветы )
ShoutOut! © InvisionMint

 
Ответить в данную темуНачать новую тему
> VC6 & ODBC
Ruttel
сообщение 7.5.2007, 15:53
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 76
Регистрация: 25.4.2007
Пользователь №: 470



На VC6 пишу прогу, которая использует базу из ODBC, но для работы программы, базу нужно добавлять в ODBC самому. Как можно сделать, чтобы программы сама заносила БД в ODBC?


--------------------

Перейти в начало страницы
 
+Цитировать сообщение
LeXX
сообщение 8.5.2007, 14:45
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 9
Регистрация: 26.3.2007
Из: Пенза
Пользователь №: 13



Вот для того, чтобы заносить в список DSN (или как там это правильно называется в ODBC...) читай MSDN это сделать как-то можно. Но сам понимаешь что произойдет, если на одном компе должны будут работать 2 проги с именем базы например "MyBase"
Вот я делал немного не так. Вместо имени твоей базы можно писать строку инициализации. Например для DBF:
CODE
BOOL cDBFDataBase::Connect( const char *i_db_path )
{
char buff[ MAX_PATH ];
wsprintf( buff, "DSN=Visual FoxPro Tables;UID=;PWD=;SourceDB=%s;"
"SourceType=DBF;Exclusive=No;BackgroundFetch=No;Collate=RUSSIAN;",
i_db_path );
return cDataBase::Connect( buff );
}

Для SQL Server что-то вроде этого:
CODE
BOOL cMSSQLDataBase::Connect(const char *i_server,const char *i_db_name,const char *i_uid,const char *i_pwd )
{
char buff[ MAX_PATH ];
wsprintf( buff, "DRIVER=SQL Server;SERVER=%s;UID=%s;PWD=%s;DATABASE=%s;Trusted_Connection=No",
i_server,
i_uid,
i_pwd,
i_db_name );
return cDataBase::Connect( buff );
}

И далее делалось уже подключение к базе (что то подобное, я так полагаю ты уже писал):
CODE
BOOL cDataBase::Connect( const char *i_connect_string )
{
SQLRETURN retcode;

retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &m_henv);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {

/* Set the ODBC version environment attribute */
retcode = SQLSetEnvAttr(m_henv, SQL_ATTR_ODBC_VERSION,
(void*)SQL_OV_ODBC3, 0);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {

/* Allocate connection handle */
retcode = SQLAllocHandle(SQL_HANDLE_DBC, m_henv, &m_hdbc);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
/* Set login timeout to 5 seconds. */
// SQLSetConnectAttr(m_hdbc, (void*)SQL_LOGIN_TIMEOUT, 5, 0);

/* Connect to data source */
char buf[ 1024 ];
SQLSMALLINT buf_size;
retcode = SQLDriverConnect( m_hdbc,
GetDesktopWindow(),
(SQLCHAR*) i_connect_string, SQL_NTS,
(SQLCHAR*)buf, 1023, &buf_size, SQL_DRIVER_COMPLETE );

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
/* Allocate statement handle */
retcode = SQLAllocHandle(SQL_HANDLE_STMT, m_hdbc, &m_hstmt);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
m_connected = TRUE;
return TRUE;
}
} else {
ShowErrorBox();
}
}
}
}
return FALSE;
}
Перейти в начало страницы
 
+Цитировать сообщение
Ruttel
сообщение 8.5.2007, 18:31
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 76
Регистрация: 25.4.2007
Пользователь №: 470



Спасибо, пригодилось.


--------------------

Перейти в начало страницы
 
+Цитировать сообщение
Ruttel
сообщение 20.6.2007, 14:13
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 76
Регистрация: 25.4.2007
Пользователь №: 470



Создал форму, унаследованную от CRecordView. Создал пункт меню, чтобы вызывать эту форму. А вот как запустить эту форму при нажатии на пункт меню не знаю. Вызывал раньше только диалоговые окна. Писал так:

CODE

CMyDialod dlg;
dlg.DoModal();


А как вызвать CRecordView?
P.S. SDI
_________________________________________________________

Сделал вывод таблицы через CDialog, поэтому срочности и необходимости в вопросе нет, но если знаете, то напишите ответ smile.gif.

Сообщение отредактировал Ruttel - 20.6.2007, 16:36


--------------------

Перейти в начало страницы
 
+Цитировать сообщение
dedasus
сообщение 28.11.2018, 16:50
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 74
Регистрация: 27.11.2018
Пользователь №: 25,072



жесткий минет порно на столе http://fuguista.com/na-stole/
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 17.12.2018, 5:40

My Topsites List