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


Автор: hornet 26.5.2006, 19:24
Код

type
Naklad = record
Nak:string;
Cex:String;
Owner :string;
D: String;
Name:String;
Code:String;
Price:String;
Kol:String;
Stoum:String;
end;
var
a: Naklad;
begin
a.Nak := EdNakl.Text ; Значение 1
a.Cex  := Cb1.Text ;  Значение 01
a.Owner := EdNach.Text ; Значение Шаршатов С.В.
a.D :=EdData.Text; Значение 02,05,02
dm.Qr.Close;
dm.Qr.SQL.Clear;
dm.Qr.SQL.Add('insert into Накладная (Накладная№,Цех,Дата,Начальник) Values ('+a.Nak+','+a.Cex+','+a.D+','+a.Owner+')');
dm.Qr.SQL.Add ('cursor into q3');
dm.Qr.active:=True;

Если делаю так пишет:
Ошибка синтаксиса (пропушен оператор) в выражении запроса 'Шаршатов С.В.'.'
Если не добавлять cursur into q3 
Пишет Cann't creat cursur hundl !! Что-то в роде этого !
Если делаю так:
Код

dm.Table1.Append ;
dm.Table1.AppendRecord(['+a.Nak+','+a.Cex+','+a.D+','+a.Owner+']);
dm.Table1.FieldByName('Накладная).AsString :=a.Nak;
dm.Table1.FieldByName('Цех').AsString:=a.Cex;
dm.Table1.FieldByName('Дата').AsString:=a.d;
dm.Table1.FieldByName('Начальник').AsString:=a.Owner;
m.Table1.Post;

Пишет Cann't do with operation on an open dataset 
Подскажите, как добавить эту запись !!
  

Автор: Staruha 26.5.2006, 22:21
может так
Код

 +':a.Nak'+
  

Автор: hornet 27.5.2006, 09:12
Нет так не получается!!! 

Автор: Vit 30.5.2006, 16:09
1. Значения строк в запросе получается без кавычек
2. Что такое "dm.Qr.SQL.Add ('cursor into q3');"?
3."Cann't creat cursur hundl !!" - это потому что надо ExecSQL вместо "dm.Qr.active:=True;"
4. Используйте пераметры, вам будет легче
5. Во втором коде строка "dm.Table1.AppendRecord(['+a.Nak+','+a.Cex+','+a.D+','+a.Owner+']);" не нужна
 

Автор: hornet 31.5.2006, 10:49
Спасибо за помощь!!! 

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