Обнаружены символы за пределами инструкции sql access

1
2
3
4
5
INSERT INTO Teachers (КодУчителя, Фамилия, Имя, Отчество, Предмет, НомерТелефона) VALUES(1, Антипина, Светлана, Бронислововна, БД, 23432);
INSERT INTO Teachers (КодУчителя, Фамилия, Имя, Отчество, Предмет, НомерТелефона) VALUES(2, Наговицына, Елена, Александровна, Информ, 21122);
INSERT INTO Teachers (КодУчителя, Фамилия, Имя, Отчество, Предмет, НомерТелефона) VALUES(3, Сычева, Наталья, Витальевна, Информ, 21132);
INSERT INTO Teachers (КодУчителя, Фамилия, Имя, Отчество, Предмет, НомерТелефона) VALUES(4, Сычёв, Даниил, Витальевич, Физра, 23444);
INSERT INTO Teachers (КодУчителя, Фамилия, Имя, Отчество, Предмет, НомерТелефона) VALUES(5, Чепырина, Валентина, Александровна, Экология, 23422);

 
Whippi
 
(2003-01-13 15:56)
[0]

Что за фигня:

Написал простенький запрос к Аксесовской базе:



SELECT Изделия.*, Компоненты.*, Состав.*

FROM Изделия, Компоненты, Состав;

WHERE Изделия.ИЗД=Состав.ИЗД

AND Компоненты.КОМП=Состав.КОМП;



и выдало такую ошибку: Обнаружены символы за пределами инструкций SQL.

Но вот не вижу где ошибка. Ткните носом пожалуйста :))


 
Delirium^.Tremens
 
(2003-01-13 15:58)
[1]

Русские символы


 
Zz_
 
(2003-01-13 16:04)
[2]

FROM Изделия, Компоненты, Состав
;


 
Whippi
 
(2003-01-13 16:11)
[3]

2Delirium^.Tremens:

Какие русские символы,пишу просто:

SELECT Изделия.*, Компоненты.*, Состав.*

FROM Изделия, Компоненты, Состав;
прокатывает, только добавляю:

WHERE Изделия.ИЗД=Состав.ИЗД

AND Компоненты.КОМП=Состав.КОМП;


Выдает:Обнаружены символы за пределами инструкций SQL.

2Zz_


> FROM Изделия, Компоненты, Состав ;



А у меня что?


 
stone
 
(2003-01-13 16:13)
[4]

после FROM Изделия, Компоненты, Состав не надо ставить ;


 
Whippi
 
(2003-01-13 16:20)
[5]

Блиииииииииин,

спасибо за науку, впредь акуратнее буду примеры сдирать :))


Добрый день!  Жду...
На самостоятельное изучение дали тему «Применение параметров при реализации SQL-запросов». Программа должна реализовывать следующее:
* Добавлять записи в таблицу (INSERT)
* Удалять записи из таблицы (DELETE)
* Редактировать записи в таблице (UPDATE)
* Выдавать информацию о товарах из таблицы, которых на складе осталось меньше введённого количества.
И всё это исключительно с помощью параметров.
Таблица в БД у меня такая:
Поле IDCode (счётчик, первичный ключ)
Поле TovarName (текстовый)
Поле Price (числовой, двойное с плавающей точкой)
Поле Sklad (числовой, длинное целое)
Причём в методичке сказано что данные в неё вносить не нужно, это осуществится с помощью Дельфи, поэтому таблица пустая.
Ну а в Дельфи соответственно 4 ADOQuery, в каждом свои параметры.
Проблемы возникли уже на первой операции (INSERT). Параметры в запросе следующие:
* TName:
DataType — ftString
А вот Value он почему-то «не захотел» делать String, упорно ставит её OleStr. В этом я думаю и заключается проблема… Чайник
* Price:
DataType — ftFloat
Value «само по себе делается» Double и по-другому никак не хочет
* Sklad:
DataType — ftInteger
Value — Integer
В ADOQuery в свойстве SQL код:

INSERT INTO Table1 (TovarName, Price, Sklad)
Values( :TName, :Price, :Sklad);

Вот текст всей программы:

unit LAB7Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, ADODB;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label5: TLabel;
    Edit4: TEdit;
    BitBtn4: TBitBtn;
    ADOQuery2: TADOQuery;
    DataSource2: TDataSource;
    ADOQuery3: TADOQuery;
    DataSource3: TDataSource;
    ADOQuery4: TADOQuery;
    DataSource4: TDataSource;
    Edit5: TEdit;
    Label6: TLabel;
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  X: integer;

implementation

{$R *.dfm}

procedure TForm1.BitBtn4Click(Sender: TObject); {инф-ия о товаре из табл.1, кот. на складе осталось меньше указанного кол-ва}
begin
ADOQuery1.Active:=false;
ADOQuery1.Parameters.ParamByName(‘NS’).Value:=StrToInt(Edit4.Text);
ADOQuery1.Active:=true;
ADOQuery1.SQL.Add(‘SELECT * FROM Table1’);
end;

procedure TForm1.BitBtn1Click(Sender: TObject); {Добавить записи в табл.1}
begin
ADOQuery2.Parameters.ParamByName(‘TName’).Value:=Edit1.Text;
ADOQuery2.Parameters.ParamByName(‘Price’).Value:=StrToFloat(Edit2.Text);
ADOQuery2.Parameters.ParamByName(‘Sklad’).Value:=StrToInt(Edit3.Text);
ADOQuery2.ExecSQL;
ADOQuery2.SQL.Add(‘SELECT * FROM Table1’);
end;

procedure TForm1.BitBtn3Click(Sender: TObject); {редактировать запись}
begin
ADOQuery3.Parameters.ParamByName(‘ID_Code’).Value:=StrToInt(Edit5.Text);
ADOQuery3.Parameters.ParamByName(‘TName’).Value:=Edit1.Text;
ADOQuery3.Parameters.ParamByName(‘Price’).Value:=StrToFloat(Edit2.Text);
ADOQuery3.Parameters.ParamByName(‘Sklad’).Value:=StrToInt(Edit3.Text);
ADOQuery3.ExecSQL;
ADOQuery3.SQL.Add(‘SELECT * FROM Table1’);
end;

procedure TForm1.BitBtn2Click(Sender: TObject); {удалить запись}
begin
ADOQuery4.Parameters.ParamByName(‘ID_Code’).Value:=StrToInt(Edit5.Text);
ADOQuery4.SQL.Add(‘SELECT * FROM Table1’);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ADOQuery1.SQL.Add(‘SELECT * FROM Table1’);
ADOQuery2.SQL.Add(‘SELECT * FROM Table1’);
ADOQuery3.SQL.Add(‘SELECT * FROM Table1’);
ADOQuery4.SQL.Add(‘SELECT * FROM Table1’);
end;

end.

Запустила, вввела в Edit’ы наименование товара, цену, склад, нажимаю кнопку «Добавить» — прога вылетает с ошибкой «Обнаружены символы за пределами инструкции SQL». Здесь была моя ладья... Ну а другие операции я даже проверить не могу пока эта не станет работать… Да можно...
Подскажите пожалуйста, как побороть эту ошибку?! Ах!

#1 11.05.2020 13:59:47

SuperDelfi
Участник
Зарегистрирован: 11.05.2020
Сообщений: 1

Обнаружены символы за пределами инструкции

Необходимо было перехватить код, только что добавленной строки, использовал @@Identity т.к база данных находится на access

INSERT INTO [Автошкола]
([Фамилия], [Имя], [Отчество], [Пол], [Гражданство], [Дата_рождения], [Кол-во], [Категория], [Дата_приёма_на_работу], [Код_прохождения], [Код_принятия], [Код_должности], [Адрес_проживания], [Телефон])
VALUES        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
SELECT @@IDENTITY

Выдаёт ошибку о том что «Обнаружены символы за пределами инструкции»
Крик души!

Неактивен

#2 11.05.2020 20:53:43

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2412

Re: Обнаружены символы за пределами инструкции

На данном форуме разбираются вопросы по MySQL, Вам имеет смысл обратиться на форум по Microsoft Access.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли…

Неактивен

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    >
    Строка команды SQL

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    01.07.09, 14:40

      Junior

      *

      Рейтинг (т): 1

      Подскажите, пожалуйста, какую строку команды запроса надо ввесли в объект OleDbCommand, чтобы считать две таблицы из БД?
      Ввожу:»

      ExpandedWrap disabled

        SELECT * FROM T1;

      «+»

      ExpandedWrap disabled

        SELECT * FROM T2

      «- выдает: «Обнаружены символы за пределами инструкции SQL»

      Сообщение отредактировано: Bas — 01.07.09, 15:37


      Бобёр



      Сообщ.
      #2

      ,
      01.07.09, 14:49

        бухантер

        ******

        Рейтинг (т): 120

        так вроде ж нельзя 2 сразу то..

        Monster

        Akina



        Сообщ.
        #3

        ,
        01.07.09, 14:58

          ExpandedWrap disabled

            «SELECT * FROM T1 UNION SELECT * FROM T2;»

          Wizard

          Bas



          Сообщ.
          #4

          ,
          01.07.09, 15:36

            Цитата Akina @ 01.07.09, 14:58

            ExpandedWrap disabled

              SELECT * FROM T1 UNION SELECT * FROM T2;

            Если только структуры одинаковые.

            Цитата __Dim__ @ 01.07.09, 14:40

            чтобы считать две таблицы из БД

            ExpandedWrap disabled

              SELECT * FROM T1, T2

            Monster

            Akina



            Сообщ.
            #5

            ,
            01.07.09, 15:39

              Цитата Bas @ 01.07.09, 15:36

              Если только структуры одинаковые.

              А иначе постановка вопроса теряет всякий смысл…


              jManiak



              Сообщ.
              #6

              ,
              01.07.09, 17:22

                А мне кажется Автору нужно просто выполнить два запроса к СУБД, но он хочет впихнуть их в однй операцию :)


                __Dim__



                Сообщ.
                #7

                ,
                01.07.09, 18:06

                  Junior

                  *

                  Рейтинг (т): 1

                  Спасибо всем :)
                  В принципе вопрос появился в связи с использованием DataSet, когда необходимо загрузить все БД, хотя структуры таблиц разные. Подобный запрос делал по подобию с БД.sql, из книги: «SELECT FN,LN FROM T1;»+»SELECT VAL FROM T2», т.к. только изучаю… :unsure:

                  Monster

                  Akina



                  Сообщ.
                  #8

                  ,
                  01.07.09, 19:10

                    Цитата __Dim__ @ 01.07.09, 18:06

                    необходимо загрузить все БД, хотя структуры таблиц разные

                    Ну тогда это нерешаемо… или нужно все соответствующие выбираемые поля приводить к одинаковому типу, скажем строковому.

                    ExpandedWrap disabled

                      SELECT CStr(Date) As Date, CStr(Amount) As Amount, Name

                      FROM Table1

                      UNION

                      SELECT CStr(Date(DateTime)), strValue, CStr(Articul)

                      FROM T2


                    __Dim__



                    Сообщ.
                    #9

                    ,
                    02.07.09, 06:12

                      Junior

                      *

                      Рейтинг (т): 1

                      Понятно, спасибо :)

                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                      0 пользователей:

                      • Предыдущая тема
                      • Базы данных: Общие вопросы
                      • Следующая тема

                      Рейтинг@Mail.ru

                      [ Script execution time: 0,0362 ]   [ 15 queries used ]   [ Generated: 24.04.23, 19:13 GMT ]  

                      Понравилась статья? Поделить с друзьями:
                    • Pdf руководство по эксплуатации mercedes benz
                    • Фаберлик phytopolis инструкция по применению отзывы
                    • Leran eo 6474 ix инструкция на русском
                    • Эффектив экстра от тараканов инструкция по применению
                    • Раствор кандида для обработки полости рта цена инструкция по применению