Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для elClair
0 / 0 / 2
Регистрация: 27.12.2013
Сообщений: 34

Делфи ругается на преобразование

12.06.2015, 19:25. Показов 647. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу взять строки из полей и записать их в БД. Делаю так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure TForm1.Button1Click(Sender: TObject);
Var
  ID_proekt, proekt_name, data_vidachi,data_okonchania, zakazchik, budget: string;
begin
    ID_proekt:=quotedstr(unit11.Form1.Edit1.Text);
    proekt_name:=quotedstr(unit11.Form1.Edit2.Text);
    data_vidachi:=quotedstr(unit11.Form1.Edit3.Text);
    data_okonchania:=quotedstr(unit11.Form1.Edit4.Text);
    zakazchik:=quotedstr(unit11.Form1.Edit5.Text);
    budget:=quotedstr(unit11.Form1.Edit6.Text);
    begin
    ID_proekt:=StrToInt(Text);//тут попытка преобразовать строку в инт дабы оно корректно записалось в БД
    budget:=StrToInt(Text);
    data_vidachi:=StrToDate(Text);
    data_okonchania:=StrToDate(Text);
 
    with unit2.DataModule2.helpQuery do
 
    begin
    close;
    SQL.Clear;
    SQL.Add('exec NoviiSotrudnik'+ID_proekt+','+proekt_name+','+data_vidachi+','+data_okonchania+','+zakazchik+','+budget);
    ExecSQL;
    Unit2.DataModule2.ProjectsQuery.Active:=false;
    Unit2.DataModule2.ProjectsQuery.Active:=true;
      end;
    end;
  end;
end.
Подскажите где косяк и как исправить, пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.06.2015, 19:25
Ответы с готовыми решениями:

Почему делфи ругается на Allow подскажите пожалуйста
procedure TForm_Users.FormClose(Sender: TObject; var Action: TCloseAction); begin Form_Users.Destroy; end; procedure...

На что поменять функцию NZ из аксесса а то делфи на нее ругается?
Kolihestvo_ostatca: Nz(l(.;0)-Nz(!;0)

На какое преобразование ругается компилятор?
Помогите разобраться пишет "Не удается неявно преобразовать тип "double" в "int". Существует явное преобразование (возможно, пропущено...

7
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
12.06.2015, 20:17
Цитата Сообщение от elClair Посмотреть сообщение
Подскажите где косяк
Проще найти в этом коде места где косяков нет.
Цитата Сообщение от elClair Посмотреть сообщение
ID_proekt:=StrToInt(Text);//тут попытка преобразовать строку в инт дабы оно корректно записалось в БД
Что ты тут говоришь о корректности записи?
0
 Аватар для elClair
0 / 0 / 2
Регистрация: 27.12.2013
Сообщений: 34
12.06.2015, 20:22  [ТС]
Вообще ничего не говорю, имея в виду дельфи, он у меня с сегодняшнего дня завелся. Надо же мне записать в БД нужные типы, вот, пытаюсь.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
12.06.2015, 21:12
А зачем вы через запрос то это делаете? У вас же хранимая процедура. Для этого TAdoStoredProc есть.
Все что вам будет необходимо это заполнить параметры этой процедуры и выполните ее.
1
 Аватар для elClair
0 / 0 / 2
Регистрация: 27.12.2013
Сообщений: 34
13.06.2015, 10:42  [ТС]
Цитата Сообщение от Пытливый Посмотреть сообщение
Для этого TAdoStoredProc есть.
Нужна ли внешняя библиотека и какая, если нужна? Я нашла у себя только SQLStoredProc, можно ли ее использовать? Если знаете как, подскажите, пожалуйста.

Добавлено через 16 минут
еще AdoStoredProc есть.
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,602
13.06.2015, 10:42
Цитата Сообщение от elClair Посмотреть сообщение
подскажите, пожалуйста.
Смотрите так понятно
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  With   ADOStoredProc1 do
  begin
    Parameters.Clear;
    ProcedureName := 'Exchange'; // Имя ХП
    Parameters.Refresh;
    Parameters.ParamByName('@from').Value :=  DBLookupComboBox1.Text;
    ParamByName('@to').Value :=  DBLookupComboBox2.Text;
    ParamByName('@Money').Value :=  Edit1.Text;
    ExecProc;
  end;
  With ADOQuery1 do
  begin
    SQL.Text := 'SELECT * FROM Таблица';
    Open;
  end;
1
 Аватар для elClair
0 / 0 / 2
Регистрация: 27.12.2013
Сообщений: 34
15.06.2015, 19:04  [ТС]
Цитата Сообщение от xxbesoxx Посмотреть сообщение
Смотрите так понятно

Если я правильно вас поняла, у меня должно быть так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   With    Unit2.DataModule2.NSStoredProc do
begin
    Parameters.Clear;
    ProcedureName := 'NoviiProekt'; // Èìÿ ÕÏ
    Parameters.Refresh;
    Parameters.ParamByName('@ID').Value :=   TextStrToInt(Edit1.Text);   //1
    Parameters.ParamByName('@proekt_name').Value :=  Edit2.Text;         //2
    Parameters.ParamByName('@data_vidachi').Value :=  TextStrToDate(Edit3.Text);//3
    Parameters.ParamByName('@data_okonchania').Value :=  TextStrToDate(Edit4.Text);//4
    Parameters.ParamByName('@zakazchik').Value :=  Edit5.Text;           //5
    Parameters.ParamByName('@budget').Value :=  TextStrToInt(Edit6.Text);//6
    ExecProc;
  end;
  With helpQuery do
  begin
    SQL.Text := 'SELECT * FROM Proekti';
    Open;
       end;
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,602
15.06.2015, 19:18
Цитата Сообщение от elClair Посмотреть сообщение
у меня должно быть так:
Почитай коментар тоже
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
With DataModule2.NSStoredProc do //  Unit2.  Не нужно 
begin
    Parameters.Clear;
    ProcedureName := 'NoviiProekt'; // Имя ХП
    Parameters.Refresh;
 //   Parameters.ParamByName('@ID').Value :=   TextStrToInt(Edit1.Text); // В таблице это поля ID надо делать  identity(1,1) и не нужно добавить из Edit1.Text 
    Parameters.ParamByName('@proekt_name').Value :=  Trim(Edit2.Text); // Почитай про функция Trim и применяй его в программу
    Parameters.ParamByName('@data_vidachi').Value :=  TextStrToDate(Edit1.Text);// Для (Даты) ползуйте  DateTimePicker и НЕ "Edit1.Text"
    Parameters.ParamByName('@data_okonchania').Value :=  TextStrToDate(Edit1.Text);// Тоже самое
    Parameters.ParamByName('@zakazchik').Value :=  Trim(Edit1.Text); // некогда не оставляй таким имени "Edit1" компонент! назови его нормальный имя ! На пример "edtzakazchik" 
    Parameters.ParamByName('@budget').Value :=  TextStrToInt(Edit1.Text);//6
    ExecProc;
end;
  With helpQuery do
  begin
    SQL.Text := 'SELECT * FROM Proekti';
    Open;
  end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.06.2015, 19:18
Помогаю со студенческими работами здесь

Преобразование кода с С++ в Делфи
подскажите, как это сделать? #include <stdio.h> #include <stdlib.h> #include <math.h> #include "mpi.h" ...

Преобразование изображений в Делфи
Нужно Рассмотреть частные случаи преобразований, используя треугольник на координатной оси: а) параллельный перенос; б) поворот...

Переделка из делфи - ругается на объявление функции "sizeof "Check" is unknown or zero"
Сижу перебираю программку с одного языка на другой, выскочила проблема. Я на сях уже ничего давно не делал, забыл все напрочь, но...

Почему vk ругается на бесплатные хостинги? На какие не ругается?
Здравствуйте, Что нужно сделать, чтобы vk не ругался на бесплатный хостинг? Я нашёл отличный хостинг 5gbfree.com. Я на нём храню свои...

Как в Делфи выполнить код, написанный на Делфи, например в поле ввода?
Есть способ в Делфи выполнить код, написанный на Делфи, например в поле ввода?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru