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

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

Неработает ADOTable.InsertRecord( [.....]); [D6, MSSQL]


Страницы:   1 2

PONTIY ©   (2003-01-21 13:23:00) 

Вставляю новую запись в пустую таблицу приведенным в теме методом, компилятор сильно ругается будто я пытаюсь добавить NULL в поле которое этого не позволяет (на самом деле это не так). А вот если в эту же таблицу первую запись добавить ручками, то этот же метод благополучно отрабатывает как положено вставляя в таблицу последующие записи. Я что-то не так делаю?


PONTIY   (2003-01-22 14:25:00) [1]

угу, вроде бы разобрался. спасибо


sniknik   (2003-01-22 12:56:00) [2]

обшибся, опс. путаницу ввел сорри. ну посмотрел есть различия?


PONTIY   (2003-01-22 12:29:00) [3]

to sniknik
prOfiler оно зовется


PONTIY   (2003-01-22 12:27:00) [4]

to BlackTiger
>Ну нормально, я всегда пользуюсь - и нормально. Что-то у Вас, батенька, в коде.

а Вы это делаете с пустой таблицей или нет? (см. начало темы)


sniknik   (2003-01-22 12:25:00) [5]

это примочка от MSSQL


PONTIY   (2003-01-22 12:22:00) [6]

to sniknik
а где он есть этот Prifiler, что-то не вижу среди делфы?


BlackTiger   (2003-01-22 11:01:00) [7]

исключение возбуждается при выполнении строки ADOTable1.Insert;

Ну нормально, я всегда пользуюсь - и нормально. Что-то у Вас, батенька, в коде.

А ОШИБКУ-ТО ХОТЬ КАКУЮ ВЫДАЕТ? Текст! Конкретно! Начнем с этого.


sniknik   (2003-01-22 08:27:00) [8]

то что?

нечего о нем расказывать, запустил открыл new->trace, все, смотриш какими командами идет общение.
тут то у некоторых глаза и открываются, что на самом деле ADOTable это не то что в BDE таблица, а все переводится в команды SQL, по другому и не может он же SQLсервер.

вот тут и смотри чем первый Insert от последующих отличается, может команда кривая может дополнительно что посылается. короче сравнивай.

(в итоге после недельки работы с Prifiler-ом 98% за то что перейдеш на чистый SQL :-)))


PONTIY   (2003-01-22 06:16:00) [9]

sniknik © (21.01.03 15:27)
>а насчет Prifiler-а ? посмотреть результирующий запрос от TADOTable?.

Если ты мне поподробней расскажешь про Prifiler


PONTIY   (2003-01-22 06:15:00) [10]


Если бы ты посмотрел на описание InsertRecord, то заметил бы, что он принимает массив из TVarRec. А как с этой байдой общаться - фиг его знает.

Либо делай, как сказали, либо

ADOTable1.Insert;
for i := 0 to ADOTable1.FieldCount - 1 do
ADOTABLE.Field[i].AsString = MyValues[i]
ADOTable.Post;



"Либо" не пройдет, исключение возбуждается при выполнении строки ADOTable1.Insert;


BlackTiger   (2003-01-21 21:05:00) [11]

Если бы ты посмотрел на описание InsertRecord, то заметил бы, что он принимает массив из TVarRec. А как с этой байдой общаться - фиг его знает.

Либо делай, как сказали, либо

ADOTable1.Insert;
for i := 0 to ADOTable1.FieldCount - 1 do
ADOTABLE.Field[i].AsString = MyValues[i]
ADOTable.Post;


sniknik   (2003-01-21 15:27:00) [12]

а насчет Prifiler-а ? посмотреть результирующий запрос от TADOTable?.

PONTIY © (21.01.03 14:51)
> Но я хотел бы обойтись TADOTable
я бы наоборот советовал при работе с SQL сервером обходится безTADOTable и даже без TADOQuery, а обходится TADODataSet и TADOCommand ну и (куда без него) TADOConnection. Но конечно как желаете.


PONTIY   (2003-01-21 15:07:00) [13]

Не компилятор конечно, просто к слову пришлось, так как это все происходит в режиме компиляции.


Anatoly Podgoretsky   (2003-01-21 14:55:00) [14]

Признайся, насчет компилятора, ты конечно приврал, так как иначе невозможно было бы останое.


PONTIY   (2003-01-21 14:51:00) [15]

Если писать SQL запросы, то конечно же работает. Но я хотел бы обойтись TADOTable


PONTIY   (2003-01-21 14:13:00) [16]

to Johnmen

код простой:


ADOTable2.InsertRecord(["Value1", "Value2", "Value3", ...]);


sniknik   (2003-01-21 14:00:00) [17]

1 проверил код? работает?
2 запусти Prifiler и посмотри какой командой первая запись из ADOTable.InsertRecord вставляется.
3 сравни.


Johnmen   (2003-01-21 13:55:00) [18]

Так будут подробности (код) или нет ?


PONTIY   (2003-01-21 13:51:00) [19]

Я же про один метод пишу: InsertRecord. Bменно он у меня невставляет как положено запись в пустую таблицу, но замечательно это делает на таблице в которой есть хотя бы одна запись.


sniknik   (2003-01-21 13:50:00) [20]

сорри недоглядел скобки, надо так
ADOCommand.CommandText:=
"CREATE TABLE TableTest (Field1 CHAR(20)) "+
"INSERT INTO TableTest (Field1) VALUES (""First field"")";
ADOCommand.Execute;


""<>"


Страницы:   1 2

Наверх

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