Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизВставка данных в таблицу Найти похожие ветки
← →
Ира (2004-09-03 13:27) [0]Подскажите пожалуйста, как решить следующую проблему:
в таблицу через форму ввода вносятся данные о клиенте: фамилия, номер ИНН, номер расчетного счета, контактный телефон и т.д. проблема в том, что не у всех клментов есть весть перечень данных, т.е. некоторые поля могут оставаться пустыми, но если делать следующий запрос на вставку, то при наличии пустых параметров вызывается исключение:
sql.SQL.Add("INSERT INTO clients (name, inn, rs, tel) ");
sql.SQL.Add("VALUES (:namer, :inn, :rs, :tel) ");
sql.Parameters.ParseSQL(sql.SQL.Text, True);
sql.Parameters.ParamByName("name").Value := Name.text;
sql.Parameters.ParamByName("inn").Value := INN.Text;
sql.Parameters.ParamByName("rs").Value := Account.text;
sql.Parameters.ParamByName("tel").Value := Tel.text;
try
sql.ExecSQL;
except
on E:Exception do ShowMessage(E.Message);
end;
← →
Роман Снегирев (2004-09-03 13:32) [1]а зачем вообще делать SQL.ADD(insert into ...)?, ты же дельфе программируешь!!! есть методы инсерт соответствующих компонентов
← →
Ира (2004-09-03 13:33) [2]Каких? Подскажите плиз...
← →
Klerk (2004-09-03 13:34) [3]У меня тот же вопрос в этом форуме:(
← →
Zacho © (2004-09-03 13:36) [4]2 Ира (03.09.04 13:27) :
Вместо Value используй AsString
2 Ира (03.09.04 13:33) [2]:
TQuery, например. :)
← →
Sergey13 © (2004-09-03 13:44) [5]2Ира (03.09.04 13:27)
А так не получится?
if Tel.text="" then sql.Parameters.ParamByName("tel").Clear
← →
Ира (2004-09-03 13:48) [6]2Sergey13
А с этим что делать:
sql.SQL.Add("VALUES (:namer, :inn, :rs, :tel) "); ???? - вот ведь они еще где эти параметры-то...
← →
Sergey13 © (2004-09-03 13:53) [7]2 [6] Ира (03.09.04 13:48)
Ничего не делай. Clear ставит параметр в NULL. Он и запишется в БД.
← →
Ира (2004-09-03 14:11) [8]if Tel.text="" then sql.Parameters.ParamByName("tel").Clear
говорит Undeclaired Identifier Clear :((((
← →
Ира (2004-09-03 14:15) [9]Тоже самое говорит при:
sql.Parameters.ParamByName("tel").AsString -
undeclaired indentifier AsString;
← →
Sergey13 © (2004-09-03 14:15) [10]2[8] Ира (03.09.04 14:11)
А что за компонент у тебя sql? Кстати зачем так называть то?
← →
Ира (2004-09-03 14:16) [11]var sql: TADOQuery;
.....
sql:=TADOQuery.Create(nil);
← →
Sergey13 © (2004-09-03 14:19) [12]А, сори. Я про TQuery. АДО не рулил ни разу.
← →
Ира (2004-09-03 14:32) [13]Что же делать??? Кто-нибудь подскажет?
← →
Роман Снегирев (2004-09-03 15:16) [14]Что же делать??? Кто-нибудь подскажет?
стреляться, что же еще. а в адо наверняка есть какие-то подобные конструкции, а вообще, что у тебя за БД, может вообще стоит отказаться от адо?
← →
AndB © (2004-09-03 15:46) [15]а так?:
sqlStr := "INSERT INTO clients (name, inn, rs, tel) VALUES (";
if (Trim(Name.text) = "") then sqlStr := sqlStr + "NULL"+#44 else sqlStr := sqlStr + #39+Name.text+#39#44;
if (Trim(INN.Text) = "") then sqlStr := sqlStr + "NULL"+#44 else sqlStr := sqlStr + #39+INN.Text+#39#44;
if (Trim(Account.text) = "") then sqlStr := sqlStr + "NULL"+#44 else sqlStr := sqlStr + #39+Account.text+#39#44;
if (Trim(Tel.text) = "") then sqlStr := sqlStr + "NULL" else sqlStr := sqlStr + #39+Tel.text+#39;
sqlStr := sqlStr + ")";
sql.SQL.Clear; sql.SQL.Add(sqlStr);
sql.ExecSQL;
а что? даже INN - текст?
← →
Nikolay M. © (2004-09-03 16:06) [16]
> Ира (03.09.04 14:11) [8]
> if Tel.text="" then sql.Parameters.ParamByName("tel").Clear
>
> говорит Undeclaired Identifier Clear :((((
.Value := nil?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c