Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2015, 09:08   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А так:
Код:
... VALUES ('''','+QuotedStr ...
еще - если в одном из эдитов кавычка встретится, то будет полный облом. Лучше через параметры
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.01.2015, 09:39   #12
googl
Форумчанин
 
Регистрация: 05.06.2010
Сообщений: 154
По умолчанию

('','+QuotedStr(Edit4.Text)+','+Quoted Str(Edit1.Text)+','+QuotedStr(Edit2 .Text)+','+QuotedStr(Edit5.Text)+', '+QuotedStr(Edit6.Text)+','+QuotedS tr(Edit7.Text)+')';

Вот там не так
googl вне форума Ответить с цитированием
Старый 14.01.2015, 10:37   #13
lord24
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 107
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А так:
А так вроде норм, только ругается на "не соответствие типов данных в выражении условия отбора".
По моему эту ошибку видел уже, но что-то не цепануло.
Так вот, какой тип?
Код:
'INSERT INTO Adreses ([Код],[Index],[Name],[Adres],[Sity],[Obl],[Regin]) VALUES ('''','+QuotedStr(Edit4.Text)+','+QuotedStr(Edit1.Text)+','+QuotedStr(Edit2.Text)+','+QuotedStr(Edit5.Text)+','+QuotedStr(Edit6.Text)+','+QuotedStr(Edit7.Text)+')';
Если поле код - это счетчик, то как его тогда иначе прописать в запросе?
PS: Да, база в Acces если что.
lord24 вне форума Ответить с цитированием
Старый 14.01.2015, 10:39   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вообще не прописывать ни в перечне, ни в значениях
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.01.2015, 11:08   #15
lord24
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 107
По умолчанию

Сделал так
Код:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO Adreses ([Index],[Name],[Adres],[Sity],[Obl],[Regin]) VALUES ('+QuotedStr(Edit4.Text)+','+QuotedStr(Edit1.Text)+','+QuotedStr(Edit2.Text)+','+QuotedStr(Edit5.Text)+','+QuotedStr(Edit6.Text)+','+QuotedStr(Edit7.Text)+')');
ADOQuery1.Active := true;
ADOQuery1.ExecSQL;
Edit1.Clear;
Edit2.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Adreses');
ADOQuery1.Active := true;
ADOQuery1.ExecSQL;
И вот "текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции"
По ходу что-то лишнее в коде, но надо что бы Грид обновился после всего.

Хотя в базу добавляет в итоге.
lord24 вне форума Ответить с цитированием
Старый 14.01.2015, 11:15   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
ADOQuery1.ExecSQL;
Какой тайный смысл в этом в самом конце?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.01.2015, 11:22   #17
lord24
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 107
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Какой тайный смысл в этом в самом конце?
Отправка запроса, что бы грид показал все записи.
Хотя и комментирование этой строчки приводит к той же проблеме.

Ну, да есть же true. наверно можно и без нее.
lord24 вне форума Ответить с цитированием
Старый 14.01.2015, 11:28   #18
lord24
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 107
По умолчанию

Все до шел.
Спасибо, Аватар.
lord24 вне форума Ответить с цитированием
Старый 14.01.2015, 11:32   #19
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Ну, да есть же true. наверно можно и без нее.
Не можно без нее, а нельзя так делать. Active:=True (или Open) и ExecSQL совершенно разные по смыслу и назначению и в тандеме их применение бессмысленно и ошибка гарантирована
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.01.2015, 11:46   #20
lord24
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 107
По умолчанию

Да я убрал строчку с "АКТИВ" и все пошло как надо.
Во теперь над UPDATE бьюсь "Ошибка внутри конструкции".....
Код:
ADOQuery1.SQL.Add('UPDATE Adreses SET Index = QuotedStr(Edit4.Text), Name = QuotedStr(Edit1.Text), Adres = QuotedStr(Edit2.Text), QuotedStr(Edit5.Text), Obl = QuotedStr(Edit6.Text), Regin = QuotedStr(Edit7.Text)');
lord24 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка синтаксиса SQL запроса Brother Abbat БД в Delphi 5 16.12.2011 09:00
Помогите с запросом SQL. Ошибка синтаксиса в выражении запроса. ZiG24RUS Microsoft Office Access 1 19.05.2009 06:29
при поиске по базе выдает ошибку - Пропущен оператор в выражении frai БД в Delphi 1 09.11.2007 23:01
[Microsoft][Драйвер ODBC dBase] Дата содержит синтаксическую ошибку в выражении запроса '#FNAIM_SH' Jon_1981 БД в Delphi 1 11.06.2007 10:20