Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
ВнизADO + MSSQL + D6 Найти похожие ветки
← →
zks (2002-09-23 12:52) [0]Помогите кто может пожалуйста!!
Есть база Людей.
Я использую SQL - запрос вставки записей, значения передаю через параметры (их порядка 44). При выполнении ExecSQL. Вылезает ошибка "Дополнительные возможности не реализованы". Как это понимать, и как от него избавиться. Пишу под NT2000
Всем параметрам задаю явно типы.
Пожалуйста.
← →
3JIA9I CyKA (2002-09-23 12:55) [1]Кусочек кода?
← →
zks (2002-09-23 13:11) [2]Сам SQL: INSERT INTO TPerson
VALUES (:p1, :p2, .. :p44)
Сам код
DM.IsertPerson.Parameters.ParamByName("p1").Value := "gh";
...
и так далее в том же духе
ExecSQL; на нем все и вылазит
Тип задаю в инспекторе
← →
3JIA9I CyKA (2002-09-23 13:17) [3]Вроде никакого криминала. Скрипт таблы и весь код встаки, pls.
← →
zks (2002-09-23 13:25) [4]Но он заявляет, что дополнительные возможности не реализованы.
Кстати глюк может быть из-за даты, я прочитал в форуме.
У меня много разных типов (стринг, дата, целое)
И я использую ODBC
← →
3JIA9I CyKA (2002-09-23 13:52) [5]см. 3JIA9I CyKA © (23.09.02 13:17)
← →
zks (2002-09-23 14:30) [6]Уфф
Таблица TPerson
ID int, уникальный
Code_Vod char5
Suname char30
Name char30
Otchestvo char30
BirthDay DateTime
Pasp_seriya char
Number_Pasp char
Date_Vydachi DateTime
Kem char150
INN char30
Pension char 30
Index integer
City char30
Raion char30
Street char30
Home char10
Korpus char10
Kv char5
Seriya_Vod char10
Number_Vod char10
DateVydachi_Vod DateTime
Kategor char5
********************************************************
SQL вставки
INSERT INTO TPerson
VALUES(:Code_Vod, :Suname, :Name, :Otchestvo, :BirthDay,
:Pasp_Seriya, :Number_Pasp, :Date_Vydachi, :Kem, :INN, :Pension,
:Index, :City, :Raion, :Street, :Home, :Korpus, ;Kv, :Seriya_Vod,
:Number_Vod, :DateVydachi_Vod, :Kategor)
Код передачи параметров
with DM.InsertPerson.Parameters do
begin
ParamByName("Cod_Vod").Value := edCodeVod.Text;
ParamByName("Suname").Value := edSunameVod.Text;
ParamByName("Name").Value := edNameVod.Text;
ParamByName("Otchestvo").Value := edOtchestvoVod.Text;
ParamByName("BirthDay").Value := StrToDate(edBirthDayVod.Text);
ParamByName("Pasp_Seriya").Value := edPaspSeriya.Text;
ParamByName("Number_Pasp").Value := edNumberPasp.Text;
ParamByName("Date_Vydachi").Value :=
StrToDate(edDate_Vydachi.Text);
ParamByName("Kem").Value := edKemPasp.Text;
дальше в таком духе
end;
DM.InserPerson.ExecSql;
← →
3JIA9I CyKA (2002-09-23 14:47) [7]А есть уверенность, что это
ParamByName("BirthDay").Value := StrToDate(edBirthDayVod.Text);
сработает правильно?
← →
zks (2002-09-23 14:58) [8]Имееш ввиду правильно ли конвертирует?
Или что
← →
3JIA9I CyKA (2002-09-23 16:12) [9]типа того
← →
zks (2002-09-24 04:00) [10]Проверю и скажу.
Насчет OLE - выбор провайдера .
← →
zks (2002-09-26 05:22) [11]Получилось, выбрал провайдера, и таблицу большую разделил на насколько.
Только вопрос: Когда делаю вставку записи INSERT поле ID автоматически выставляется сервером БД. Чтобы узнать код этого ID нужно делать запрос и получать код. По красивее есть пути.
← →
Владислав (2002-09-26 06:15) [12]А каким образом ты можешь получить код ID, делая запрос?
← →
zks (2002-09-26 09:44) [13]Типа SELECT * FROM Person WHERE SUname = "a"
Код получу
N := Query1.FieldByName("Id").Value
не важно что используеш ADO или локальные суть одна.
← →
doomin (2002-09-26 10:53) [14]Что бы получить ID можешь сразу заменить ADOCommand на ADODataset и сделать запрос типа
insert ....
select @@IDENTITY as ID
После открытия этого запроса в Fields[0] получишь ID, созданный инсертом.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c