Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Не могу добавить данные в таблицу


Автор: igorz89 6.5.2009, 20:06
Есть БД MSSql, и форма с edit'ами. К примеру, 2 эдита, в первом фамилия, во, втором - имя. Надо добавить эти данные в таблицу. Пишу вот такой код:
Код

query1.SQL.Text:='insert into sotrudniki values ('+chr(39)+edit1.Text+chr(39)+','+chr(39)+edit2.Text+chr(39)+')';
query1.ExecSQL;

При добавлении данных пишет такую ошибку
http://ipicture.ru/



Автор: Kbl4AH 6.5.2009, 20:19
igorz89, а в таблице сотрудники только 2 поля?

Добавлено через 1 минуту и 29 секунд
если нет, то перечисляй поля
Код

query1.SQL.Text:='insert into sotrudniki (fio, name) values ('+chr(39)+edit1.Text+chr(39)+','+chr(39)+edit2.Text+chr(39)+')';


Добавлено через 4 минуты и 19 секунд
а лучше так
Код

Query1.SQL.Text := 'insert into sotrudniki (fio, name) values (' + QuotedStr(Edit1.Text) + ',' + QuotedStr(Edit1.Text) + ')';

Автор: insoft 6.5.2009, 20:36
Kbl4AH, а ещё лучше через параметры ;)

Автор: Kbl4AH 6.5.2009, 20:40
Цитата(insoft @  6.5.2009,  21:36 Найти цитируемый пост)
Kbl4AH, а ещё лучше через параметры ;)

 smile 

Автор: Keeper89 6.5.2009, 21:05
Не удержался smile
Код

with query1 do
begin
  SQL.Text := 'insert into sotrudniki (surname, name) values (:surname, :name)';
  Parameters.ParseSQL(SQL.Text, True);
  Parameters.ParamByName('surname').Value := Edit1.Text;
  Parameters.ParamByName('name').Value := Edit2.Text;
  ExecSQL;
end;

Автор: Akella 6.5.2009, 21:14
igorz89, неужели так сложно изучить синтаксис Insert`а?

Автор: insoft 6.5.2009, 21:26
Keeper89, маленький нюанс sql.clear забыл  smile 
Akella, меня вообще этот форум удивляет с каждым днём.. создаются типовые ветки и каждый раз задаются типовые вопросы которые описаны в каждом букваре.. пора либо уже справку делать и выводить в отдельный топ или банить нафиг тех кто ленится воспользоваться поиском :(

Автор: Keeper89 6.5.2009, 21:43
Цитата(insoft @  6.5.2009,  21:26 Найти цитируемый пост)
маленький нюанс sql.clear забыл

Точно, исправил.

Добавлено через 2 минуты и 16 секунд
Цитата(insoft @  6.5.2009,  21:26 Найти цитируемый пост)
пора либо уже справку делать и выводить в отдельный топ или банить нафиг тех кто ленится воспользоваться поиском :( 

Дело в том, что поиск работает не очень хорошо на форуме, что уже в отдельной теме обсуждали. Ну а совет всегда эффективнее и быстрее получить, чем искать. smile

Автор: igorz89 6.5.2009, 21:54
Получилось только с использованием параметров, но главное результат есть. Всем спасибо!
P. S. По форуму искал, подобный совет не находил(

Автор: Akella 6.5.2009, 22:06
Цитата(insoft @  6.5.2009,  21:26 Найти цитируемый пост)
Akella, меня вообще этот форум удивляет с каждым днём.. создаются типовые ветки и каждый раз задаются типовые вопросы которые описаны в каждом букваре.. пора либо уже справку делать и выводить в отдельный топ или банить нафиг тех кто ленится воспользоваться поиском :( 

ну.... возмущениям нашим нет предела smile , но всё же это форум, на то он и форум, чтобы спрашивать, отвечать, что поделаешь...., на форумах любят задавать вопросы "писатели", т.е. только те, кто только хочеть писать программы, а мануалы ковыряют "читатели". Шутка smile 

Автор: Kbl4AH 6.5.2009, 22:21
Цитата(insoft @  6.5.2009,  22:26 Найти цитируемый пост)
Keeper89, маленький нюанс sql.clear забыл

clear при присвоении значения свойству Text использовать не нужно, т. к. clear УЖЕ используется в методе записи свойства... ;)

Автор: Keeper89 6.5.2009, 22:25
Kbl4AH, точно, совсем запутали  smile 

Автор: Kbl4AH 6.5.2009, 22:28
Цитата(insoft @  6.5.2009,  22:26 Найти цитируемый пост)
Akella, меня вообще этот форум удивляет с каждым днём.. создаются типовые ветки и каждый раз задаются типовые вопросы которые описаны в каждом букваре.. пора либо уже справку делать и выводить в отдельный топ или банить нафиг тех кто ленится воспользоваться поиском :(

имхо трудновато человеку на первых порах самому что-то найти и додумать, когда у него не то что основ нет, а вообще плохо понятно что такое программирование и не известны его приемы, тем более в программировании БД (можно сравнить с "государством в государстве")...
а так  - раз сказали человеку маленький рабочий кусочек, два сказали... на третий раз он уже и сам додумает что к чему...

Автор: Akella 7.5.2009, 09:21
Да, иногда даже не знаешь, по каким ключевым словам искать, ладно, вернёмся к теме обсуждения smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)