Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
20Sova24
0 / 0 / 0
Регистрация: 26.11.2019
Сообщений: 18
1

Подключение DLL библиотеки через запрос SQL

16.01.2020, 13:37. Просмотров 132. Ответов 0
Метки нет (Все метки)

Здравствуйте, есть одна проблема с подключение DLL библиотеки через запрос SQL. Нужно чтобы после запроса dll, выполнила свою функцию и SQL Server создал таблицу с готовым результатом.
Сам код DLL
C++ (Qt)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include "pch.h"
#include <fstream>
#include <iostream>
#include <stack>
#include "simple_graph.h"
 
simple_graph::simple_graph(std::string fileName, std::string matrixEntity, std::string vertexEntity)
{
 
    std::ifstream file(fileName);
    if (!file.is_open())
        throw std::runtime_error("file not open");
 
    std::string now_string;
    std::getline(file, now_string);
 
    if (now_string != matrixEntity)
        throw std::runtime_error("not correct file");
 
    std::getline(file, now_string);
 
    auto matrix_size = now_string.length();
    std::cout << "Matrix dimension: " << matrix_size
        << "x" << matrix_size
        << std::endl;
 
    m_adjMatrix = std::vector<std::vector<int>>(matrix_size, std::vector<int>(matrix_size, 0));
 
    for (auto &v : m_adjMatrix)
    {
        for (size_t i = 0; i < now_string.length(); ++i)
        {
            v[i] = std::stoi(now_string.substr(i, 1));
        }
 
        std::getline(file, now_string);
 
        if (!file.good())
            throw std::runtime_error("not correct file");
 
        if (now_string == vertexEntity)
            break;
    }
 
    m_vertexes = std::vector<std::string>(matrix_size);
 
    for (auto &v : m_vertexes)
    {
        std::getline(file, now_string);
 
        v = now_string;
 
        if (!file.good())
            throw std::runtime_error("not correct file");
    }
}
 
void simple_graph::printUserData() const
{
    std::cout << "Your matrix:" << std::endl;
    for (const auto &v : m_adjMatrix)
    {
        for (const auto &ve : v)
            std::cout << ve << " ";
        std::cout << std::endl;
    }
 
    std::cout << "Your vertexes:" << std::endl;
    for (const auto &v : m_vertexes)
        std::cout << v << std::endl;
}
 
void simple_graph::printGraph() const
{
    for (const auto &v : m_graph)
        std::cout << v.second << " : " << v.first << std::endl;
}
 
static bool allChecked(const std::vector<VertexState> vec)
{
    for (const auto &v : vec)
        if (v != VertexState::Processed)
            return false;
    return true;
}
 
void simple_graph::calculateGraph()
{
    auto vertex_count = m_adjMatrix.size();
    std::vector<VertexState> nodes(vertex_count, VertexState::NotProcessed);
    std::stack<size_t> stack;
    auto vertex_index = 0u;
 
    while (!allChecked(nodes)) {
 
        auto now_index = 0u;
 
        for (const auto &v : nodes) {
            if (v == VertexState::NotProcessed)
                break;
 
            ++now_index;
        }
 
        if (now_index == vertex_count)
            break;
 
        // insert root vertex index in to stack
        stack.push(now_index);
 
        while (!stack.empty())
        {
            auto now_node = stack.top();
            nodes[now_node] = VertexState::Processed;
            stack.pop();
 
            for (size_t j = 0; j < vertex_count; ++j)
            {
                if (m_adjMatrix.at(now_node).at(j) == 1 && nodes.at(j) == VertexState::NotProcessed)
                {
                    stack.push(j);
                    break;
                }
            }
 
            m_graph.insert({ (now_node + 1), m_vertexes.at(vertex_index) });
            ++vertex_index;
        }
    }
}
void simple_graph::saveGraph(const std::string &filePath)
{
    std::ofstream file;
    file.open(filePath);
 
    if (!file.is_open())
        throw std::runtime_error("error open file");
 
    for (const auto &v : m_graph)
        file << v.second << ":" << v.first << std::endl;
 
    file.close();
 
}
Данный код выполняет обход графа в глубину, название вершин и матрицу смежности берёт из текстового документа, готовый результат сохраняет в новый текстовый документ.
https://yadi.sk/d/JRWR6p5FWq6cQg
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2020, 13:37
Ответы с готовыми решениями:

Подключение к MS SQL через Internet
Может кто знает... Пытаюсь подключиться к SQL Server 2000 через Internet по его IP по порту 1433 и...

Подключение к MS SQL Server-ов через интернет
Здравствуйте ребята. Зависить от провайдеров некоторый провайдер при включение интернет сразу...

Подключение к SQL серверу через интернет
Здравствуйте. Поставил SQL Server Express 2012, по нагугленным инструкциям настроил, создал новую...

Подключение к базе через SQL Developer
Можно ли подключиться к базе, созданной в MS sql server management studio? Откуда взять параметры,...

Подключение к БД SQL Server COMPACT через консоль sqlcmd
Товарищи, не могу решить банальную проблему: есть файл MyData.sdf (БД SQL Server Compact 3.5),...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2020, 13:37

Подключение через проверку подлинности SQL Server (error 233)
Приветствую Вас! У меня такая проблема (распространенная, но тем не менее): создал через запрос...

Сводная таблица через запрос SQL
Здравствуйте! Помогите разобраться в таком вопросе: Есть таблица: Номер Период 1111    Вчера...

Как связать таблицы через sql запрос
Добрый день, имеется, к примеру, такие таблицы со связью:...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.