Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/27: Рейтинг темы: голосов - 27, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 28

SQL запрос, из edit'a в БД

12.12.2012, 21:58. Показов 5842. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется edit1 в котором я пишу число (предметов), нажимаю кнопку ОК, на форме генерируется столько едитов сколько было введено в edit1, в остальных едитах я пишу названия предметов.
Необходимо создать таблицу в БД access c количеством полей Edit1 и название этих полей и будут все эти предметы.
Я пробовал делать SQL запрос на создание таблицы, но не получается взять название полей из едитов. Подскажите как, или напишите сам SQL запрос, чтобы сразу из едитов брал названия.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.12.2012, 21:58
Ответы с готовыми решениями:

Из Edita впеременную
Есть Edit при нажатии на кнопку надо чтобы числовая информация которая была введенна в него перевелась в переменную с типом int. Если можно...

Вывод данных с Edita в Excel
Мне нужно вывести данные с edit в определенную ячейку екселя.Имею следующий код, создает , открывает и закрывает ексель. А вот как вывести...

Как посмотреть T-SQL запрос который генерирует Entity Framework запрос
как посмотреть T-SQL запрос который генерирует Entity Framework запрос в visual studio 2010, 2012

27
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 28
08.01.2013, 18:33  [ТС]
Студворк — интернет-сервис помощи студентам
как ни странно, но после перезапуска среды нормально заработало то, что не работало) т.е. тот запрос сработал, теперь хотел его доделать. у меня есть таблица сведения кгде находяться сведения о студентах, каждый студент нумерован счетчиком, оно же и ключевое поле, тут код чтоб зделать ключем надо написать "primary key" ?
Delphi
1
q5.SQL.Text :='CREATE TABLE Student (код AUTOINCREMENT(1, 1) PRIMARY KEY,'+Ed[0].Text+' text (20),'+Ed[1].Text+' text (20),'+Ed[2].Text+' text (20))';
таким должно быть? простите уж, но плохо я еще разбираюсь во всем этом)
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
08.01.2013, 18:41
Цитата Сообщение от inos Посмотреть сообщение
таким должно быть?
да, правильно
1
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 28
08.01.2013, 20:24  [ТС]
увеличил sql запрос до вида:
Delphi
1
q5.SQL.Text :='CREATE TABLE успеваемость (код AUTOINCREMENT(1, 1) PRIMARY KEY,'+Ed[0].Text+' text (20),'+Ed[1].Text+' text (20),'+Ed[2].Text+' text (20),'+Ed[3].Text+' text (20),'+Ed[4].Text+' text (20),'+Ed[5].Text+' text (20),'+Ed[6].Text+' text (20),'+Ed[7].Text+' text (20),'+Ed[8].Text+' text (20),'+Ed[9].Text+' text (20),'+Ed[10].Text+' text (20),'+Ed[11].Text+' text (20),'+Ed[12].Text+' text (20),'+Ed[13].Text+' text (20),'+Ed[14].Text+' text (20),'+Ed[15].Text+' text (20))';
и сталкнулся с такой ошибкой
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
08.01.2013, 21:05
Access Violation довольно распространенная ошибка, нужно смотреть полностью код
0
-4 / 0 / 1
Регистрация: 22.12.2011
Сообщений: 215
08.01.2013, 21:12
Свойство SQL имеет тип TStrings. Объект TStrings представляет собой список строк, и чем-то похож на массив. Тип данных TStrings имеет в своем арсенале команды добавления строк, их загрузки из текстового файла и обмена данными с другим объектом TStrings. Другой компонент, использующий TStrings - TMemo. В демонстрационном проекте ENTRSQL.DPR (по идее, он должен находится на отдельной дискетте, но к "Советам по Delphi" она не прилагается - В.О.), пользователь должен ввести SQL-запрос и нажать кнопку "Do It" ("сделать это"). Результаты запроса отображаются в табличной сетке. В Листинге 1 полностью приведен код обработчика кнопки "Do It".
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
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Query1.close;     {Деактивируем запрос в качестве одной из мер предосторожности }
if not Query1.prepared
then
Query1.prepare; {Убедимся что запрос подготовлен}
{Берем значение, введенное пользователем и заменяем
им параметр.}
if edit1.text <> '' {Проверяем на предмет пустого ввода}
then
Query1.ParamByName('DEPT_NO').AsString := edit1.text
else
Begin
Query1.ParamByName('DEPT_NO').AsInteger := 0;
edit1.text := '0';
end;
try        {перехватчик ошибок}
Query1.Open;     {Выполняем запрос и открываем набор данных}
except     {секция обработки ошибок}
On e : EDatabaseError do {e - новый дескриптор ошибки} messageDlg(e.message,
mtError,
[mbOK],0); {показываем свойство message объекта e}
end;     {окончание обработки ошибки}
end;
Использование команды Format для создания SQL-запроса
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
30
31
32
33
34
35
36
37
38
procedure TForm1.BitBtn1Click(Sender: TObject);
var
sqlString : string; {здесь хранится SQL-запрос}
fmtStr1,
fmtStr2 : string; {здесь хранится строка, передаваемая для форматирования}
 
 
begin
{ Создание каркаса запроса }
sqlString := 'Select EMP_NO %s from employee where SALARY %s';
 
 
if showSalaryChkBox.checked {Если checkbox Salary отмечен}
then
fmtStr1 := ', SALARY'
else
fmtStr1 := '';
if salaryEdit.text <> '' { Если поле редактирования Salary не пустое }
then
fmtStr2 := salaryEdit.text
else
fmtStr2 := '>0';
 
 
Query1.Close; {Деактивируем запрос в качестве одной из мер предосторожности }
Query1.SQL.Clear; {Стираем любой предыдущий запрос}
Query1.SQL.Add(Format(sqlString,[fmtStr1, fmtStr2]));{Добавляем}
{форматированную строку к свойству SQL}
 
 
try {перехватчик ошибок}
Query1.Open; {Выполняем запрос и открываем набор данных}
except {секция обработки ошибок}
On e : EDatabaseError do {e - новый дескриптор ошибки}
messageDlg(e.message, mtError,[mbOK],0);
{показываем свойство message объекта e}
end; {окончание обработки ошибки}
end;
0
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 28
08.01.2013, 22:13  [ТС]
Цитата Сообщение от antikiler_ Посмотреть сообщение
Access Violation довольно распространенная ошибка, нужно смотреть полностью код
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
unit uspevaemost;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBClient, StdCtrls, ADODB;
 
type
  TForm12 = class(TForm)
    btn1: TButton;
    ds1: TClientDataSet;
    q5: TADOQuery;
    lbl1: TLabel;
    edt1: TEdit;
    btn2: TButton;
    procedure btn1Click(Sender: TObject);
   
    procedure btn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form12: TForm12; Ed: Array of TEdit;
 
implementation
 
{$R *.dfm}
 uses PASSWORD, MainUnit;
procedure TForm12.btn1Click(Sender: TObject);
 
begin
 
q5.active:=false;
  q5.SQL.Clear;
  q5.SQL.Text :='CREATE TABLE óñïåâàåìîñòü (êîä AUTOINCREMENT(1, 1) PRIMARY KEY,'+Ed[0].Text+' text (20),'+Ed[1].Text+' text (20),'+Ed[2].Text+' text (20), '+Ed[3].Text+' text (20), '+Ed[4].Text+' text (20), '+Ed[5].Text+' text (20) )';
  try
  q5.execSQL;
  except
 end;
 showmessage('òàáëèöà ñîçäàíà');
 form3.q6.SQL.text:='select * from óñïåâàåìîñòü';
 form3.q6.Active:=true;
 form12.Close;
end;
 
 
 
procedure TForm12.btn2Click(Sender: TObject);
var Lab: Array of TLabel;
 
    n,i,a: Integer;
begin
 
  n :=StrToInt(edt1.Text) ;
  SetLength(Lab, n+1);
  SetLength(Ed, n+1);
  for i := 0 to n-1 do
    begin
      Lab[i] := TLabel.Create(Self);
      Lab[i].Parent := Self;
      Lab[i].Left := 10;
      Lab[i].Top := i*30+20;
      Lab[i].Caption := 'Ïðåäìåò ¹'+IntToStr(i+1);
      Ed[i] := TEdit.Create(Self);
      Ed[i].Parent := Self;
      Ed[i].Left := 150;
      Ed[i].Top := i*30+20;
      Ed[i].Text := 'Íàçâàíèå'+IntToStr(i+1);
 
end;
 end;
 
end.
я встречаюсь с этой ошибкой впервые)
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
08.01.2013, 22:52
Закомментируй строки 45 и 46. Ошибка должна исчезнуть
1
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
10.01.2013, 18:52
Цитата Сообщение от inos Посмотреть сообщение
увеличил sql запрос до вида:
А если Вы введете в поле Edit1 число 100, как изменится Ваш запрос?
Используйте цикл, например, для создания нормального динамического запроса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2013, 18:52

Запрос Select T-sql - Вложенный запрос вернул больше одного значения
Нужно посчитать комиссию от сделки. DealShare(комиссия) - поле таблицы agents, supplies - предложения(риелторы клиентам) deals-...

Как в sql запрос вставить еще один запрос правильно?
Есть длинный запрос, в котором можете даже не разбираться если не хотите, но выдает он следующее: Запрос: SELECT...

SQL запрос, работающий в MS SQL Menegment'e не работает в делфи
Требуется выполнить запрос по нажатию кнопки, запрос сначала написал в Microsoft SQL Managment, где и написал свою БД, там запрос работает,...

Не работае запрос в SQL Navigator 6.0 хотя работает в 4 и SQL Plus
Добрый день. Такая вот непонятная проблемка нарисовалась на ровном месте. Установили SQL Navigator 6.0 и запрос: select (CASE WHEN...

SQL-запрос в SQL server management studio 2008 (if else)
Здравствуйте! Нужна помощь в правке условия, уже как более 8 часов не могу правильно составить условие... +1 к карме обеспечен. Вычислить...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru