Как на VC добавить запись сразу в несколько таблиц
От: dmbel  
Дата: 27.01.03 15:23
Оценка:
VC6, SQLServer2000, ODBC. При добавлении новой записи сразу в две таблицы появляется сообщение "Recordset is read-only". В книгах, которые видел, примеры добавления записей только для одной таблицы.
Re: Как на VC добавить запись сразу в несколько таблиц
От: ВованЯ  
Дата: 27.01.03 16:01
Оценка:
Здравствуйте, dmbel, Вы писали:

D>VC6, SQLServer2000, ODBC. При добавлении новой записи сразу в две таблицы появляется сообщение "Recordset is read-only". В книгах, которые видел, примеры добавления записей только для одной таблицы.

если это не коммерческая тайна, то как ты это пытаешься делать ???
С уважением, Владимир
Re: Как на VC добавить запись сразу в несколько таблиц
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.01.03 17:17
Оценка:
Здравствуйте, dmbel, Вы писали:

D>VC6, SQLServer2000, ODBC. При добавлении новой записи сразу в две таблицы появляется сообщение "Recordset is read-only". В книгах, которые видел, примеры добавления записей только для одной таблицы.

Логично, ибо рекордсет, полученный из более чем одной таблицы, по определению является ReadOnly. См. SQL Books Online.
... << RSDN@Home 1.0 beta 5 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Как на VC добавить запись сразу в несколько таблиц
От: Аноним  
Дата: 29.01.03 09:10
Оценка:
Здравствуйте, ВованЯ, Вы писали:

D>>VC6, SQLServer2000, ODBC. При добавлении новой записи сразу в две таблицы появляется сообщение "Recordset is read-only". В книгах, которые видел, примеры добавления записей только для одной таблицы.

ВЯ>если это не коммерческая тайна, то как ты это пытаешься делать ???

Есть 2 или более связанных таблиц, отношением один ко многим. В метод GetDefaultSQL() экземпляра класса CRecordSet вставляем строку (например): return _T("SELECT Departments.*, Employees.*, Managers.* FROM (Departments INNER JOIN Employees ON Departments.DeptID = Employees.DeptID) INNER JOIN Managers ON Departments.DeptID = Managers.DeptID;");

Как в полученный RecordSet вносить изменения?

Код наподобие:


    UpdateData(TRUE);
    m_pSet->AddNew();
    ///
    m_pSet->m_DeptID=my;
    ///
    if (m_pSet->CanUpdate())  {
      m_pSet->Update();
    }
    if (!m_pSet->IsEOF())
    {
        m_pSet->MoveLast();
    }


не работает (Recordset is read only)

Если это невозможно, может есть альтернативный вариант работы с о связанными таблицами?
Re: Как на VC добавить запись сразу в несколько таблиц
От: Awaken Украина  
Дата: 29.01.03 12:41
Оценка:
D>VC6, SQLServer2000, ODBC. При добавлении новой записи сразу в две таблицы >появляется сообщение "Recordset is read-only". В книгах, которые видел, примеры >добавления записей только для одной таблицы.

ни в ADO ни в ODBC это нельзя.
посмотри ADO.NET он намного более продвинутый по части операций
со связанными таблицами.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconADOPreviousVersionsOfADO.asp
Re: Как на VC добавить запись сразу в несколько таблиц
От: vvaizh http://izh-test.sourceforge.net/
Дата: 29.01.03 12:48
Оценка:
Здравствуйте, dmbel, Вы писали:

D>VC6, SQLServer2000, ODBC. При добавлении новой записи сразу в две таблицы появляется сообщение "Recordset is read-only". В книгах, которые видел, примеры добавления записей только для одной таблицы.


ИМХО юзая транзакции, и @@IDENTITY (id последней добавленной записи),
делай в два INSERT.. А ещё лучше всё это в StoredProcedure забей..
http://izh-test.sourceforge.net/russian/introduction.html
Re[3]: Как на VC добавить запись сразу в несколько таблиц
От: _wqwa США  
Дата: 29.01.03 12:53
Оценка:
Здравствуйте, <Аноним>, Вы писали:


А>Если это невозможно, может есть альтернативный вариант работы с о связанными таблицами?


Ага, точно. по отдельности. В каждую. И никак иначе. SQL иначе просто не умеет.
И нынешние СУБД-шки--тоже.
... << RSDN@Home 1.0 beta 5 >>
Кто здесь?!
Re[2]: Как на VC добавить запись сразу в несколько таблиц
От: Аноним  
Дата: 29.01.03 16:55
Оценка:
Здравствуйте, Awaken, Вы писали:
A>ни в ADO ни в ODBC это нельзя.

а какже быть динамическим свойством Unique Table для Recorset'a — он то как раз и позволяет.
Re: Как на VC добавить запись сразу в несколько таблиц
От: ASe Россия http://www.seleznyov.com
Дата: 05.02.03 10:39
Оценка:
Здравствуйте, dmbel, Вы писали:

D>VC6, SQLServer2000, ODBC. При добавлении новой записи сразу в две таблицы появляется сообщение "Recordset is read-only". В книгах, которые видел, примеры добавления записей только для одной таблицы.


Есть триггер INSTEAD OF INSERT. Его можно повесть на вьюшку, созданную из двух исходных таблиц, и в нем проводить обновление.
WBR, ASe
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.