powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / MFC & SQL
13 сообщений из 13, страница 1 из 1
MFC & SQL
    #34484059
Oleg_2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я использую MFC 6.0
C Пощью CAdodc, C_Recordset, CDataGrid я получаю и отображаю
результаты предложений SELECT.
Будте добры, подскажите, как в этой ситуации можно модифицировать
базу данных, например, послать на сервер предложение INSERT ....
Извините за примитивный вопрос.
...
Рейтинг: 0 / 0
MFC & SQL
    #34485351
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала купить книжку под общим названием "Базы данных бла-бла-бла"
и поискать там
ALTER TABLE
Ещё одни вариант - пойти на соответствующий форум. Форум по СУБД
...
Рейтинг: 0 / 0
MFC & SQL
    #34485482
grieg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мб вместо SELECT написать INSERT или UPDATE?
Ну то есть вы умеете выполнять SELECT. Значит, аналогично выдолжны мочь выполнять и остальные команды SQL. В чем сложность?
...
Рейтинг: 0 / 0
MFC & SQL
    #34485564
Oleg_2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, синьер Vanoma, вероятно я мутно сформулировал вопрос.
У меня есть прог. язык С++, среда MFC Я динамически формирую Select.
Анализ результата селекта формирует предложение DML или скрипт на PL SQL .
Я не могу передать его на исполнение.
Select я добываю так:

int CBSLView::GetSelect( char *pS)
{
// C_Recordset m_cr;
// CAdodc m_ca;
// CDataGrid m_cdg;
// AfxMessageBox(pS);

::SetCursor(HWait);
m_ca.SetRecordSource(pS);

m_ca.Refresh();
m_ca.UpdateData();
m_cr=m_ca.GetRecordset(); long Nrec=m_cr.GetRecordCount();

::SetCursor(HArrow);
sprintf(Buf,"GetSelect Количество строк= %d",Nrec); AfxMessageBox(Buf);

return (int)Nrec;
}
...
Рейтинг: 0 / 0
MFC & SQL
    #34486118
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такие «вумные» шняги обычно по-другому работают: ты меняешь данные в рекордсете, вызываешь ему апдейт, а он сам посылает на сервер нужные запросы. Если тебе нужен более низкоуровневый интерфейс к базе, хмм… хз, на чём там адо работает, на одбц?
...
Рейтинг: 0 / 0
MFC & SQL
    #34487023
Oleg_2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GRIEG, признателен за совет. Это не проходит, я пробовал.
Господин maXmo, результат селекта служит информацией для анализа,
последующая модификация может затронуть другой набор таблиц,
эту операцию порой трудно выполить тупым редактирование GRIDA.
С уважением Oleg_2006!
...
Рейтинг: 0 / 0
MFC & SQL
    #34487083
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_2006последующая модификация может затронуть другой набор таблиц,
эту операцию порой трудно выполить тупым редактирование GRIDA.ну. Вот этот другой набор таблиц (которые хочешь изменить) грузишь в рекордсет, меняешь то, что подгрузил, вызываешь апдейт – и оно уходит на сервер. Если тебе нужен более низкоуровневый интерфейс к базе в терминах подключение-запрос-результат, рекордсет тебе тут не помощник.
...
Рейтинг: 0 / 0
MFC & SQL
    #34488560
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_2006Я использую MFC 6.0
C Пощью CAdodc, C_Recordset, CDataGrid я получаю и отображаю
результаты предложений SELECT.
Будте добры, подскажите, как в этой ситуации можно модифицировать
базу данных, например, послать на сервер предложение INSERT ....
Извините за примитивный вопрос.

Oleg_2006
Извините, синьер Vanoma, вероятно я мутно сформулировал вопрос.
У меня есть прог. язык С++, среда MFC Я динамически формирую Select.
Анализ результата селекта формирует предложение DML или скрипт на PL SQL .
Я не могу передать его на исполнение.
Select я добываю так:

int CBSLView::GetSelect( char *pS)
{
// C_Recordset m_cr;
// CAdodc m_ca;
// CDataGrid m_cdg;
// AfxMessageBox(pS);

::SetCursor(HWait);
m_ca.SetRecordSource(pS);

m_ca.Refresh();
m_ca.UpdateData();
m_cr=m_ca.GetRecordset(); long Nrec=m_cr.GetRecordCount();

::SetCursor(HArrow);
sprintf(Buf,"GetSelect Количество строк= %d",Nrec); AfxMessageBox(Buf);

return (int)Nrec;
}

Или я чего-то непонимаю или ...

Короче.
Изменение Чего Вы желаете произвести?
Структуры таблиц?
Тогда см. ALTER TABLE/ CREATE TABLE
Кол-во колонок в выборке?
Надо изменить поля выводимые в запрос.

Заострить внимание я хочу на варианте №1 (ALTER TABLE/ CREATE TABLE)
Вообще-то эти операции весьма нежелательны и требуют глубокого осмысления. Изменение структуры таблиц(ы) влечет за собой анализ вещей, называемых такими буквосочетаниями как:
Триггеры, Ссылочная целостность...и пр.
К чему я? Ежели Вы НЕ пишете среду разработчика для СУБД то, мне думается, что операция затрагивающая изменение структуры не должна присутствоавать в Приложении. Изменение - процесс Творческий и требует Анализа. Чего не может сделать бездушный алгоритм...

Возможно Вам следует изменить подход в работе с БД. Ещё раз Продумать структуру последней...
...
Рейтинг: 0 / 0
MFC & SQL
    #34488575
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ежели вопрос стоит:
Как мне получить данные, изменить их и вновь записать изменения в БД.

Думаю стоит посмотреть справку о Режимах открытия курсора: Только чтение; Чтение и изменение.
...
Рейтинг: 0 / 0
MFC & SQL
    #34488587
Oleg_2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый маэстро maXmo!
Я хорошо знаю, что между можно сделать и
реально сделать лежит глубокая пропость, которую в 99 случаях из
100 преодалеть не удается. У программистов - зубров я хотел бы получить
ответ (или ссылку,где поучится) на вопрос, как предложение DML или скрипт на PL SQL
можно передать в RUNTIME на выполнение. (язык С++)
С уважкеием, чайник.
...
Рейтинг: 0 / 0
MFC & SQL
    #34488615
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И №3
Коль зашёл разговор о "PL SQL" вы, думается, пользуете ORACLE

Настоятельно рекомендую обратить свой взор на библиотеку OCCI/OCI (в зависимости от версии ORACLE)

Эта библиотека работает с указанной СУБД "на прямую", а значит быстрее, значит предоставляет наибольшее кол-во рабочих инструментов и прочая, прочая, прочая...
...
Рейтинг: 0 / 0
MFC & SQL
    #34488660
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И последнее...
По нажатию на F1 + "ADO" вылазит статейка
"Command Object" в которой MSDN вещает

Execute Method
Use the Execute method of the Command object to execute a query, data definition command, or stored procedure. The syntax is:

Set rs = cmd.Execute(NumRecords, Parameters, Options)

The variable rs is the returned Recordset object, and the parameters are optional. The NumRecords parameter specifies the number of rows returned; Parameters is a variant that specifies initial input parameter values; and Options specifies the type of query (in the form of a CommandTypeEnum constant), if known, to optimize processing.

Command Type Options
Command type options are specified in the CommandType property. A command can be a standard SQL data manipulation language statement, such as SELECT, INSERT, UPDATE, or DELETE, or any data definition language statement, such as CREATE or DROP. A command can also be the name of a stored procedure or table.

The CommandType property has the following values.

CommandTypeEnum Constant Query String
adCmdFile File name of a persistently stored Recordset object
adCmdStoreProc Stored procedure
adCmdTable Table name
adCmdTableDirect Table name whose columns are all returned
adCmdText SQL statement
adCmdUnknown Contents of the command are not known (default)
adCmdUnspecified Unspecified command type argument

Видимо ему надо подсунуть строку
"Begin Create Table MyTable(id Number)"
...
Рейтинг: 0 / 0
MFC & SQL
    #34488671
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо ему надо подсунуть строку
"Begin Create Table MyTable(id Number) End."
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / MFC & SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]