Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/75: Рейтинг темы: голосов - 75, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 11.11.2014
Сообщений: 25

ERROR: 42601: syntax error at or near

29.03.2017, 23:23. Показов 13546. Ответов 1

Author24 — интернет-сервис помощи студентам
Работаю через C# с функцией plpgSQl, но при использование её выдает Ошибку " ERROR: 42601: syntax error at or near ","".
Пожалуйста, помогите найти причину.
SQL Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE OR REPLACE FUNCTION public."sp_CreateQuestionary"(
    IN _name CHARACTER VARYING,
    IN _family_name CHARACTER VARYING,
    IN _father_name CHARACTER VARYING,
    IN _num_phone BIGINT,
    OUT _pk_id_klient INTEGER)
  RETURNS INTEGER AS
$BODY$
BEGIN 
INSERT INTO QuestionaryTABL (Name, Family_name, Father_name, Num_phone) VALUES (_name, _family_name, _father_name, _num_phone) returning Pk_ID_Klient INTO _pk_ID_Klient; 
END; 
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public."sp_CreateQuestionary"(CHARACTER VARYING, CHARACTER VARYING, CHARACTER VARYING, BIGINT)
  OWNER TO postgres;
Вот и сам код C#
Кликните здесь для просмотра всего текста

C# Скопировано
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
78
79
80
81
82
83
84
using System;
using Npgsql;
using System.Data.Common;
using System.Windows.Forms;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
 
namespace WindowsFormsApplication7
{
    public partial class Form1 : Form
    {
        private DataSet ds = new DataSet();
        private DataTable dt = new DataTable();
 
        NpgsqlConnection con = new NpgsqlConnection("Server=localhost;Port=5432;User=postgres;Password=Leon7;Database=Questionary;");
            string sql = ("SELECT "Pk_ID_Klient", "Name" , "Family_name", "Father_name", "Num_phone"  FROM "QuestionaryTABL"");
        NpgsqlDataAdapter adapter ;
        NpgsqlCommandBuilder commandBuilder;
 
        public Form1()
        {
            InitializeComponent();
            dataGridView1.AllowUserToAddRows = false;
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            con.Open();
            NpgsqlDataAdapter adapter = new NpgsqlDataAdapter(sql, con);
            con.Close();
            ds.Reset();
            adapter.Fill(ds);
            dt = ds.Tables[0];
            dataGridView1.DataSource = dt;
    
            dataGridView1.Columns["Pk_ID_Klient"].ReadOnly = true;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            
            // добавим новую строку
            DataRow newRow = dt.NewRow();
            newRow["Name"] = textBox1.Text.ToString();
            newRow["Family_name"] = textBox2.Text.ToString();
            newRow["Father_name"] = textBox3.Text.ToString();
            newRow["Num_phone"] = UInt64.Parse(textBox4.Text);
            dt.Rows.Add(newRow);
 
            con.Open();
            adapter = new NpgsqlDataAdapter(sql, con);
            commandBuilder = new NpgsqlCommandBuilder(adapter);
 
 
            // устанавливаем команду на вставку
            adapter.InsertCommand = new NpgsqlCommand("sp_CreateQuestionary(character varying, character varying, character varying, bigint)", con);
            // это будет зранимая процедура
            adapter.InsertCommand.CommandType = CommandType.StoredProcedure;
            // добавляем параметр для name
            adapter.InsertCommand.Parameters.Add(new NpgsqlParameter("_name", NpgsqlTypes.NpgsqlDbType.Char, 50, "Name"));
 
            adapter.InsertCommand.Parameters.Add(new NpgsqlParameter("_family_name", NpgsqlTypes.NpgsqlDbType.Char, 50, "Family_name"));
 
            adapter.InsertCommand.Parameters.Add(new NpgsqlParameter("_father_name", NpgsqlTypes.NpgsqlDbType.Char, 50, "Father_name"));
 
            adapter.InsertCommand.Parameters.Add(new NpgsqlParameter("_num_phone", NpgsqlTypes.NpgsqlDbType.Bigint, 0, "Num_phone"));
 
            // добавляем выходной параметр для id
            NpgsqlParameter parameter = adapter.InsertCommand.Parameters.Add("_pk_ID_Klient", NpgsqlTypes.NpgsqlDbType.Integer, 0, "Pk_ID_Klient");
            parameter.Direction = ParameterDirection.Output;
 
            adapter.Update(ds);
 
        }
 
 
    }
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.03.2017, 23:23
Ответы с готовыми решениями:

Ошибка SQL запроса #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax t
Помогите пожалуйста! CREATE TABLE `tickets` ( `id` int(4) NOT NULL auto_increment, `user` int(11) NOT NULL default '0', ...

ERROR: syntax error at or near "PRIMARY"
как правильно задать первичный ключ? всё одна и та же ошибка выползает подскажите, пожалуйста ALTER TABLE...

Ошибка You have an error in your SQL syntax
Подскажите пожалуйста, где ошибка в этом коде $ansesi = session_id(); $prv1 = mysql_query ("SELECT `anses` ".$prefix."_result...

1
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
30.03.2017, 22:57
Смотрите примеры по NpgsqlCommand в интернете. По-моему для вызова хранимой процедуры через NpgsqlCommand, в строке запроса нужно просто написать название этой процедуры. То есть вероятно должно быть так
C# Скопировано
1
adapter.InsertCommand = new NpgsqlCommand("sp_CreateQuestionary", con);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2017, 22:57
Помогаю со студенческими работами здесь

SQLException: Syntax error or access violation...
Привет. Проблема у меня значит такая, если я делаю запрос то у меня выводится вот такая шняга: jdbc error: java.sql.SQLException: Syntax...

PDO - Syntax error or access violation: 1064 You have an error in your SQL syntax
public function getAllGategoryId(){ $sql = "SELECT id_cat FROM category WHERE show = yes...

Ошибка в тестовом примере: "Error 1 error C2143: syntax error : missing ';' before 'if'"
#include<iostream> using namespace std; int main(){ int x, a = 0, b = 10; (cin >> x).get(); while (x){ int c = x % 10; ...

Ошибка - Parse error: syntax error, unexpected T_VARIABLE как исправить?
$table = 'tp-20' $result = mysql_query('SELECT * FROM `$table` '); синтаксический ошибка как правильно писать ?

Ошибка Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRIN
При запуске локального сервера, выдает эту ошибку. Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер