Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Неработает ADOTable.InsertRecord(   Найти похожие ветки 

 
PONTIY ©   (2003-01-21 13:23) [0]

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


 
Johnmen ©   (2003-01-21 13:44) [1]

Подробное описание обоих методов ?


 
sniknik ©   (2003-01-21 13:48) [2]

попробуй следующий код
ADOCommand.CommandText:=
"CREATE TABLE TableTest (Field1 CHAR(20)) "+
"INSERT INTO TableTest (Field1) VALUES ("First field")";
ADOCommand.Execute;

получится без ошибок (должно 1 раз, после ошибка таблица уже есть) то меняй методы, и не лезь к SQL серверу с локально/табличными подходами.


 
sniknik ©   (2003-01-21 13:50) [3]

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


""<>"


 
PONTIY ©   (2003-01-21 13:51) [4]

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


 
Johnmen ©   (2003-01-21 13:55) [5]

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


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

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


 
PONTIY ©   (2003-01-21 14:13) [7]

to Johnmen

код простой:


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



 
PONTIY ©   (2003-01-21 14:51) [8]

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


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

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


 
PONTIY ©   (2003-01-21 15:07) [10]

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


 
sniknik ©   (2003-01-21 15:27) [11]

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

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



 
BlackTiger   (2003-01-21 21:05) [12]

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

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

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


 
PONTIY ©   (2003-01-22 06:15) [13]


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

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

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



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


 
PONTIY ©   (2003-01-22 06:16) [14]

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

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


 
sniknik ©   (2003-01-22 08:27) [15]

то что?

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

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

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


 
BlackTiger   (2003-01-22 11:01) [16]

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

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

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


 
PONTIY ©   (2003-01-22 12:22) [17]

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


 
sniknik ©   (2003-01-22 12:25) [18]

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


 
PONTIY ©   (2003-01-22 12:27) [19]

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

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


 
PONTIY ©   (2003-01-22 12:29) [20]

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


 
sniknik ©   (2003-01-22 12:56) [21]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
1-15668
Step[B.M.]
2003-01-29 18:05
2003.02.06
Группа компонентов в одном имени


3-15430
MAD-Sudarchikov
2003-01-18 18:03
2003.02.06
(Красноярск) Консультации по созданию БД


14-15899
IronHawk
2003-01-05 20:14
2003.02.06
Помощь в плане поиска для реферата!


1-15634
badaxe
2003-01-29 14:00
2003.02.06
Hot Key


14-15919
VictorT
2003-01-21 11:28
2003.02.06
Прикол.