Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO + MSSQL + D6 [D6, MSSQL]


zks ©   (2002-09-23 12:52:00) 

Помогите кто может пожалуйста!!
Есть база Людей.
Я использую SQL - запрос вставки записей, значения передаю через параметры (их порядка 44). При выполнении ExecSQL. Вылезает ошибка "Дополнительные возможности не реализованы". Как это понимать, и как от него избавиться. Пишу под NT2000
Всем параметрам задаю явно типы.
Пожалуйста.


doomin   (2002-09-26 10:53:00) [1]

Что бы получить ID можешь сразу заменить ADOCommand на ADODataset и сделать запрос типа
insert ....
select @@IDENTITY as ID

После открытия этого запроса в Fields[0] получишь ID, созданный инсертом.


zks   (2002-09-26 09:44:00) [2]

Типа SELECT * FROM Person WHERE SUname = "a"

Код получу
N := Query1.FieldByName("Id").Value
не важно что используеш ADO или локальные суть одна.


Владислав   (2002-09-26 06:15:00) [3]

А каким образом ты можешь получить код ID, делая запрос?


zks   (2002-09-26 05:22:00) [4]

Получилось, выбрал провайдера, и таблицу большую разделил на насколько.
Только вопрос: Когда делаю вставку записи INSERT поле ID автоматически выставляется сервером БД. Чтобы узнать код этого ID нужно делать запрос и получать код. По красивее есть пути.


zks   (2002-09-24 04:00:00) [5]

Проверю и скажу.
Насчет OLE - выбор провайдера .


3JIA9I CyKA   (2002-09-23 16:12:00) [6]

типа того


zks   (2002-09-23 14:58:00) [7]

Имееш ввиду правильно ли конвертирует?
Или что


3JIA9I CyKA   (2002-09-23 14:47:00) [8]

А есть уверенность, что это
ParamByName("BirthDay").Value := StrToDate(edBirthDayVod.Text);
сработает правильно?


zks   (2002-09-23 14:30:00) [9]

Уфф

Таблица 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 13:52:00) [10]

см. 3JIA9I CyKA © (23.09.02 13:17)


zks   (2002-09-23 13:25:00) [11]

Но он заявляет, что дополнительные возможности не реализованы.
Кстати глюк может быть из-за даты, я прочитал в форуме.
У меня много разных типов (стринг, дата, целое)
И я использую ODBC


3JIA9I CyKA   (2002-09-23 13:17:00) [12]

Вроде никакого криминала. Скрипт таблы и весь код встаки, pls.


zks   (2002-09-23 13:11:00) [13]

Сам SQL: INSERT INTO TPerson
VALUES (:p1, :p2, .. :p44)
Сам код
DM.IsertPerson.Parameters.ParamByName("p1").Value := "gh";
...
и так далее в том же духе
ExecSQL; на нем все и вылазит
Тип задаю в инспекторе


3JIA9I CyKA   (2002-09-23 12:55:00) [14]

Кусочек кода?


Наверх

Титульная страница Поиск, карта сайта Написать письмо