Бьюсь над командой INSERT INTO :-(
sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,"1.mdb");
TRY
{
base.Open(NULL,false,false,sDsn);
sql.Format("INSERT INTO Данные(Mark,Type,W,A,V,S,weight,layer,sil) VALUES ('%s', '%s', %5.2f, %5.2f, %5.2f, %5.2f, %5.2f, %d, %d);", mark, type, edit_W, edit_A, edit_V, edit_S, edit_mass,layer_number,sil_number);
base.ExecuteSQL(sql);
base.Close();
}
CATCH(CDBException, e)
{
CDialog errorDatabase;
errorDatabase.MessageBox("Database error"+e->m_strError,"error",MB_OK|MB_ICONERROR);
}
END_CATCH;
А теперь возникла необходимость работы с MS SQL 2005 Express. И почему-то не могу по аналогии с Access добавить данные в таблицу. Все аналогично, поля те же, имена те же, только источник данных другого типа. Главное, SELECT работает без изменений (за исключением приставки dbo.). А вот INSERT отказывается - пишет, что синтаксис некорректен. Вот пример:
sql.Format("INSERT INTO dbo.[Данные](Mark,Type,W,A,V,S,weight,layer,sil) VALUES ('%s', '%s', %5.2f, %5.2f, %5.2f, %5.2f, %5.2f, %d, %d);", mark, type, edit_W, edit_A, edit_V, edit_S, edit_mass,layer_number,sil_number);
base.ExecuteSQL(sql);
Что здесь может быть не так?
dbo.[Данные] - вот такие выражение кажется понимает только Access
Вы серьёзно называете таблицы кириллическими именами???
Ну да. Всегда работало и в кириллице. Кстати, разобрался, что к чему - нужно было Данные взять в квадратные скобки, а потом в круглые. Всем спасибо, тема снимается :-)