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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.10.2013, 18:26   #11
8tomat8
Пользователь
 
Регистрация: 14.09.2013
Сообщений: 46
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Поле называется не [FWHERE] , а просто FWHERE, а [] это экранирование в sql (оно для текста запроса может использоваться, но более нигде).
Если не совсем понятно, правильный вариант вот:
Код:
Prava:=ADOQuery1.FieldByName('FWHERE').AsString;
Датасет - набор данных, в Вашем случае это кверя (adoquery), но это могут быть и адопроцедуры и любой наследник TADODataSet (емнип).
Спасибо. Помогло. Все заработало как надо)

PS У меня со вчера организовался противоположный вопрос) Как данные внести из Delphi в таблицу?)))

Вот мой код. Он срабатывает без ошибок, но не добавляет запись в таблицу. Таблица как была пустой так и осталась.

Код:
if (GetCurrentUserName <> '') and (FIO.Text <> '') and (Company.Text <> '') and (Num.Text <> '') and (Phone.Text <> '') and (TelType.Text <> '') and (email.Text <> '') then
  begin
    GetCurrentUserNameUsr:=Trim(GetCurrentUserName);
    FIOUsr:=Trim(FIO.Text);
    CompanyUsr:=Trim(Company.Text);
    NumUsr:=Trim(Num.Text);
    PhoneUsr:=Trim(Phone.Text);
    EmailUsr:=Trim(email.Text);
    ADOConnection1.LoginPrompt:=false;
    AdoQuery1.SQL.Text := 'SELECT * FROM [GDPDATA].[dbo].[TREG]';
    ADOQuery1.Open;
    ADOQuery1.Insert;
    ADOQuery1.FieldByName('FUSER').AsString:='KNOPKA\'+GetCurrentUserNameUsr;
    ADOQuery1.FieldByName('FIO').AsString:=FIOUsr;
    ADOQuery1.FieldByName('FCOMP').AsString:=CompanyUsr;
    ADOQuery1.FieldByName('FNUM').AsString:=NumUsr;
    ADOQuery1.FieldByName('FPHONE').AsString:=PhoneUsr;
    ADOQuery1.FieldByName('FTELTYPE').AsString:=TelType.Text;
    ADOQuery1.FieldByName('FEMAIL').AsString:=EmailUsr;
    ADOQuery1.Active:=True;
    ShellExecute(Handle, nil, PChar('C:\1.exe'), nil, nil, SW_RESTORE);
    Application.Terminate;
  end

Подскажите пожалуйста где я тут налабудал?))

Последний раз редактировалось 8tomat8; 10.10.2013 в 18:40.
8tomat8 вне форума
Старый 10.10.2013, 18:40   #12
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

переводчика надо нанять, в ошибке все сказано
eval вне форума
Старый 10.10.2013, 19:13   #13
8tomat8
Пользователь
 
Регистрация: 14.09.2013
Сообщений: 46
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
переводчика надо нанять, в ошибке все сказано
Да, я уже разобрался) Тупить начинаю.

Но походу у меня вся конструкция была не правильная. Сейчас заменил на
Код:
procedure TFormRegistr.ButtonRegistrClick(Sender: TObject);
var SaveTxt:TStringList;
 FIOUsr, CompanyUsr, PhoneUsr, EmailUsr, GetCurrentUserNameUsr, NumUsr:string;
 today : TDateTime;
 i : integer;
begin
if Num.Text = '' then
begin
Num.Text:='Не задано';
end;
if (GetCurrentUserName <> '') and (FIO.Text <> '') and (Company.Text <> '') and (Num.Text <> '') and (Phone.Text <> '') and (TelType.Text <> '') and (email.Text <> '') then
   begin
    GetCurrentUserNameUsr:='KNOPKA\'+Trim(GetCurrentUserName);
    FIOUsr:=Trim(FIO.Text);
    CompanyUsr:=Trim(Company.Text);
    NUMUsr:=Trim(NUM.Text);
    PhoneUsr:=Trim(Phone.Text);
    EmailUsr:=Trim(email.Text);
    ADOConnection1.LoginPrompt:=false;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('INSERT INTO GDPDATA.dbo.TREG (FUSER,FIO,FCOMP,FNUM,FPHONE,FTELTYPE,FEMAIL)');
    ADOQuery1.SQL.Add('values (GetCurrentUserNameUsr,FIOUsr,CompanyUsr,NumUsr,PhoneUsr,TelType.Text,EmailUsr)');
    ADOQuery1.ExecSQL;
    ShellExecute(Handle, nil, PChar('C:\1.exe'), nil, nil, SW_RESTORE);
    Application.Terminate;
  end
  else
  LabelError.Caption:=('Заполните все поля!');
  Num.Clear;
end;
Говорит что недопустимое имя столбца "GetCurrentUserNameUsr"
8tomat8 вне форума
Старый 10.10.2013, 19:45   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А чего ожидали? Засунули имя переменной вместо её значения в строку и конец не сбывшимся надеждам И не только эту переменную

ADD

А зачем там ShellExecute и Application.Terminate?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 10.10.2013, 19:50   #15
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Код:
ADOQuery1.SQL.Add('values (GetCurrentUserNameUsr,FIOUsr,CompanyUsr,NumUsr,PhoneUsr,TelType.Text,EmailUsr)');
Такое только в PHP проканает.

Тем более не забывайте, что строковые типы нужно заключать в одинарные кавычки.

В вашем случае будет примерно так:

Код:
ADOQuery1.SQL.Add('values ('+'''+GetCurrentUserNameUsr+''','''+FIOUsr+''','''+CompanyUsr+''','''+NumUsr+''','''+PhoneUsr+''','''+TelType.Text+''','''+EmailUsr+''')');
Если использовать параметризированные запросы, то кавычки ставить не нужно
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума
Старый 10.10.2013, 19:54   #16
8tomat8
Пользователь
 
Регистрация: 14.09.2013
Сообщений: 46
По умолчанию

Спасибо всем за советы. Все сделал как надо. Работает.
Вот готовый код если кому-то понадобиться когда-то)))
Код:
procedure TFormRegistr.ButtonRegistrClick(Sender: TObject);
var SaveTxt:TStringList;
 FIOUsr, CompanyUsr, PhoneUsr, EmailUsr, GetCurrentUserNameUsr, NumUsr:string;
 today : TDateTime;
 i : integer;
begin
if Num.Text = '' then
begin
Num.Text:='Не задано';
end;
if (GetCurrentUserName <> '') and (FIO.Text <> '') and (Company.Text <> '') and (Num.Text <> '') and (Phone.Text <> '') and (TelType.Text <> '') and (email.Text <> '') then
   begin
    GetCurrentUserNameUsr:='KNOPKA\'+Trim(GetCurrentUserName);
    FIOUsr:=Trim(FIO.Text);
    CompanyUsr:=Trim(Company.Text);
    NUMUsr:=Trim(NUM.Text);
    PhoneUsr:=Trim(Phone.Text);
    EmailUsr:=Trim(email.Text);
    ADOConnection1.LoginPrompt:=false;
	ADOQUery1.Active:=False;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('INSERT INTO GDPDATA.dbo.TREG (FUSER,FIO,FCOMP,FEDRPOU,FPHONE,FTELTYPE,FEMAIL)');
    ADOQuery1.SQL.Add('values ('+char(39)+GetCurrentUserNameUsr+char(39)+','+char(39)+FIOUsr+char(39)+','+char(39)+CompanyUsr+char(39)+','+char(39)+NUMUsr+char(39)+','+char(39)+PhoneUsr+char(39)+','+char(39)+TelType.Text+char(39)+','+char(39)+EmailUsr+char(39)+')');
    ADOQuery1.ExecSQL;
    ShellExecute(Handle, nil, PChar('C:\1.exe'), nil, nil, SW_RESTORE);
    Application.Terminate;
  end
  else
  LabelError.Caption:=('Заполните все поля!');
  Num.Clear;
end;
8tomat8 вне форума
Старый 07.12.2014, 15:00   #17
ggggg1
Новичок
Джуниор
 
Регистрация: 07.12.2014
Сообщений: 1
По умолчанию запрос sql delphi

Помогите пожалуйста сделать запрос sql на delphi.
Например
1. Вычислить стоимость льготного тарифа оплаты услуг. На sql-е сделала вот код
select dbo.Kategorii_vrachebnoi_specialnos ti.[Naimenovanie],
(Tarif_po_oplate-Tarif_po_oplate*[%_skidki_po_lgote]/100) as стоимость_льготного_тарифа
from dbo.Tarif
inner join dbo.Kategorii_vrachebnoi_specialnos ti on
dbo.Tarif.[ID_kategorii_specialnosti]=dbo.Kategorii_vrachebnoi_specialno sti.[ID_kategorii_specialnosti]

его нужно вывести на delphi

Добавлено через 1 минуту
Срочно Помогите пожалуйста отобразить хранимые процедуры sql на delphi
код
use POLIKLINIKA
go

create procedure xp1
@Data_rozhdeniya int
as
select dbo.Patient.FIO, dbo.Patient.Pol, dbo.Patient.Data_rozhdeniya
from dbo.Patient
where ((dbo.Patient.Pol='m') and (year(dbo.Patient.[Data_rozhdeniya]) = @Data_rozhdeniya))


go
ggggg1 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос на дополнение данных SERG1980 БД в Delphi 2 02.06.2011 08:59
База Данных Delphi и Paradox 7 не работает запрос sql DJ DIMON БД в Delphi 4 09.12.2010 12:07
sql-запрос на выборку данных kity Помощь студентам 3 07.06.2010 17:18
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос и редактирование данных Dux БД в Delphi 7 01.09.2008 12:17