|
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
|
||||||
ADO.NET + MSSQL16.12.2019, 08:42. Показов 2923. Ответов 29
Метки нет (Все метки)
Всем ку !!
Коллеги , нужна помощь. Стыдно говорить , но завис на ровном месте . Как говорил наш незабвенный "Никогда такого не было и вот опять " (с) Расклад следующий : надо состряпать строку запроса UPDATE ( для ADO.NET или MSSQL -не важно) Везде ругается на последние символы. Второй день пошёл . Видимо я зациклился , зашорился и не могу найти решение . Выпил весь волокардин в доме , жена книжку читает - боится высунуться , собачки прячутся - я негодую ))))
Там , где я тружусь решили освоить программку 1С Альфа Автосалон+Автосервис+Автозапчасти. Всем хороша , но прайсы от поставщиков цепляет или из внешних файлов или из внешней БД. НО, эта гнида не умеет пропускать ошибочные записи и на пол пути может отвалиться при загрузке, если что-то в ней не понравится. Освоить 1С не предлагать - я старый консерватор и этот птичий язык не понимаю. Вот и возникла потребность состряпать БД , куда будут заливаться прайсы , а 1С будет автоматом к ним цепляться. Я -тварь ленивая и нетерпеливая ,и по сему мне в лом каждый день форматировать эту кучу файлов. По сему придумалась загрузка через BULK INSERT в MSSQL. Да, изначально мы не знаем структуры присылаемого нам прайса: ни кол-во столбцов , ни их названия ...ничего По сему заливаем его во временную таблицу и там уже форматируем под свои нужды, а потом запихиваем "чистые" данные уже в конечную таблицу , к которой и подцепиться 1С
0
|
||||||
| 16.12.2019, 08:42 | |
|
Ответы с готовыми решениями:
29
ADO в VB.Net Как старый ADO в VS.Net ? Оновить таблицу через ADO.NET |
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,293
|
|
| 16.12.2019, 09:06 | |
|
Kulma, и что, каждый раз разная структура? И как вы из них данные потом берёте не зная структуры? Я к тому, что данные было бы не плохо приводить к нормальному виду перед выгрузкой в базу, а не после. Это и правильнее и производительнее.
0
|
|
|
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
|
|||||||||||
| 16.12.2019, 10:42 [ТС] | |||||||||||
|
Usaga, так и знал , что возникнут подобного рода вопросы
![]() Правильнее - возможно. Производительнее - однозначно НЕТ. Файл формата csv 870 тыс. строк с предварительной обработкой грузится в базу около 12 минут Через BULK в temp таблицу и с последующей обработкой и заливкой в конечную таблицу через INSERT ...SELECT на стороне сервера все эти процедуры занимают меньше минуты ![]() Загрузка с разной структурой в temp
Второй блок - это собственно заливка данных во временную таблицу. Да, там переменная в первом блоке ....на самом деле можно статично прошить название создаваемой таблицы. Это я эксперементировал с файлами разного формата ))) Добавлено через 6 минут Да, забыл сказать : про BULK INSERT в ADO.NET знаю. Возможностей изначально больше, но по факту в моём случае они ключевого значения не играют, т.к. зачастую в присылаемых файлах полно мусора. То на то и выходит в итоге.
0
|
|||||||||||
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,293
|
||
| 16.12.2019, 10:47 | ||
|
И как вы потом данные нужные вытаскиваете из временной таблицы? Глазами на её содержимое смотрите? Так это можно сделать и перед выгрузкой в базу. Работать будет ещё быстрее.
0
|
||
|
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
|
|||
| 16.12.2019, 11:05 [ТС] | |||
|
Заливаю в конечную таблицу как есть,предварительно отформатировав(в этом и загвоздка-строка UPDATE строится) В итоге это выглядит так ....надо один раз привязать к 1С таблицу в базе
0
|
|||
|
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
|
|
| 16.12.2019, 11:06 [ТС] | |
|
Если есть какие-то идеи в коде буду признателен
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,293
|
||||||
| 16.12.2019, 11:16 | ||||||
Сообщение было отмечено Kulma как решение
Решение
Kulma, наверное так:
1
|
||||||
|
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
|
|
| 16.12.2019, 11:33 [ТС] | |
|
Usaga, спасибо вам. Буду пробовать.
Реально вопрос стыдный , но что-то зациклился .
0
|
|
|
0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 9
|
|||||||||||||||||
| 27.12.2019, 12:17 | |||||||||||||||||
|
Почитал правила форума.
Порядок создания тем. ... 2. Если собираетесь создать новую тему, определитесь с разделом или существующей темой, в которой ведется обсуждение этого вопроса. Поэтому задаю вопрос здесь. Заголовок вроде бы подходит. Я мучаюсь с VB.net два дня, раньше никогда им не занимался. Возможно делаю что то не верно, но повторяю по примерам отсюда: http://samoychiteli.ru/document26007.html http://www.realcoding.net/article/view/2129#1 и некоторым другим. Мой VB.NET встроен в скаду Movicon.NEXT. Для отладки я скачал .NET среду разработки visual studio 2019. Сначала добьюсь работоспособности в ней, потом попробую перенести в скаду. Мне нужно отправить запрос в mssql express 2014 или в mssql express 2012 и получить назад строку (наверное. я хз что мне должно вернуть, но хорошо бы строку). Сам запрос я отладил, он работает в скрипте на Python 3. ВЕСЬ код, который я смог написать выглядит так:
Поиск по тексту ошибки в основном ведет на обсуждения С# или советы использовать полное имя System.Data.SqlClient.SqlConnection, что тоже приводит к ошибке. Правда другой:
0
|
|||||||||||||||||
| 27.12.2019, 20:40 | ||||||
|
Схематичный пример
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 9
|
||||||
| 27.12.2019, 21:04 | ||||||
|
ovva, ну это же тот пример с которого я брал. ошибка в
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 9
|
||
| 27.12.2019, 22:02 | ||
|
ovva, так я всё и выложил. в нём больше нет ни строчки, как я и написал. или мне сам файл .vb выложить?
0
|
||
| 27.12.2019, 22:47 | |||||||||||
|
vivaXAPOH, я ведь не зря просил выложить проект. Там можно посмотреть не только файл vb, но и используемые настройки, подключенные библиотеки и т.д.
Но если это сложно, то не могли бы вы пояснить, как создавался проект, ибо если это делать "традиционным" способом, то базовые библиотеки должны присутствовать. Что я понимаю под "традиционным" способом: в VS в меню выбираем File/New Project и в открывшемся окне выбираем тип проекта (в данном случае Console Application), далее набираем код. Проверить подключенные библиотеки можно, если в "Обозреватели решений" выбрать "Показать все файлы". PS. В предложенном мной коде нужно в начало подставить
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 9
|
||||||
| 28.12.2019, 00:02 | ||||||
|
ovva, понял. я не знал что там такое хранится... да,я сделал просто консольное приложение "традиционным" способом. Открыл визио студио, там запустил среду разработки, мне предложило создать новое консольное приложение.
К сожалению проект сейчас на компе на работе, но я написал всего 3 строчки, никакие настройки тронуть не мог потому что не знаю где они. Я написал те 3 строчки, под номерами 2, 5 и 6, больше ничего не трогал:
остальное было сгенерировано автоматически
0
|
||||||
|
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
|
||||||||||||
| 28.12.2019, 07:56 [ТС] | ||||||||||||
|
vivaXAPOH, SqlConnection -это общий класс в составе библиотеки System.Data.SqlClient.
Чтобы с ним работать , здесь экземпляра класса SqlConnection , т.е. строка должна выглядеть так
Вариантов написания несколько , например ещё вариант
0
|
||||||||||||
| 28.12.2019, 08:56 | |||||||
Для справки WinForms, FW 2.0, может в Version=4.6.1.0 что-то поменяли.
0
|
|||||||
|
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
|
||||
| 28.12.2019, 09:14 [ТС] | ||||
|
Uswer,
![]() К слову , я так всегда пишу , объявляя переменную Кому как удобнее )))
0
|
||||
|
1723 / 1547 / 165
Регистрация: 25.07.2015
Сообщений: 2,650
|
||||||||||||||||
| 28.12.2019, 09:37 [ТС] | ||||||||||||||||
|
Uswer, а как вы сами думаете ?
![]() В каком месте его кода вы видите объявление экземпляра SQLConnection через New ? Не по теме: Такое ощущение , что всё , что написано мной ранее - это только для себя я писал ... Добавлено через 4 минуты Должно быть или так
0
|
||||||||||||||||
| 28.12.2019, 09:37 | |
|
Помогаю со студенческими работами здесь
20
Как создать подключение посредством ADO.NET? ADO.NET и Access - проблема с автоинкрементными столбцами Почему ADO .Net не коннектится с dbf базой, а с ADODB всё проходит?
Работа с Excel средствами VB.net. Как перевести код из VBA в VB.net? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|