Связь SQL и Excel

maximovega

Пожалуйста, подскажите, где в Excel прописывается, к какой базе данных привязаны макросы?
Мои макросы ссылались на одну базу (назовём её, допустим, VRM чтобы вытягивать данные, но компания начала массовые переносы серверов и баз, и на одном из серверов появилась также база с именем VRM, и есть подозрение, что порой данные идут оттуда. Соединение с базой прописывала не я (я не настолько разбираюсь в компьютерах хорошо но стараюсь найти, где это делается. Не получается. :(

kill-still

Excel и SQL. о.О
могу только предположить что в макросах на VBA такое чудо может быть.

FRider

это можно сделать несколькими способами:
- в макросах через ADO - тогда в vba-проекте надо искать где создается объект Connection
- Может быть настроено через внешний источник данных, покопайся в пунктах меню тут: Data->Import External Data

maximovega

Спасибо за направление. :)
Посмотрела, как мы создавали в Excel объект Connection. Там, к сожалению, так глубоко не видно. :( Не вижу сервер, соединение уже к самой базе идёт...
Попробую поразбираться со вторым вариантом. Что можно предпринять? Где по выбору Import External Data можно видеть сам сервер, поменять настройки?...

FRider

Где конкретно там в external data я тебе не скажу. Прсто посмотри разные опции там - не должно быть сложно.
Не вижу сервер, соединение уже к самой базе идёт...
Тут, извини, написана какая-то ерунда. Для создания объекта Connection нужно указать коннекшн стринг. Смотри, что в нем.

maximovega

В этом вопрос как раз. За соединение отвечает код
Dim ObjConn As ADODB.Connection
Set ObjConn = New ADODB.Connection
ObjConn.Open "ODBC;DATABASE=VRM;DSN=VRM;LOGINTIMEOUT=3000000"
Set ObjCmd = New ADODB.Command
ObjCmd.ActiveConnection = ObjConn
ObjCmd.CommandType = 1
ObjCmd.CommandTimeout = 3000000
Первый уровень соединения, который видно, как раз та база VRM. Где осуществляется выбор сервера, к которому нужно подключиться, не удаётся найти. :(

hprt

В винде: Control Panel -> Administrative tools -> Data Sources (ODBC)

maximovega

Для вас, наверное, и этот вопрос легко раскусить, но не прогоняйте, пожалуйста, в Current или другие разделы. :) Помогите, пожалуйста.
Как можно узнать, каким способом была создана таблица на SQL-сервере?
Какая процедура, Access-запрос или копирование из Excel отвечают за её существование?

hprt

пожалуйста, в Current или другие разделы. Помогите, пожалуйста.   Как можно узнать, каким способом была создана таблица на SQL-сервере?
Интересно, а чем вызван такой вопрос? Если не настроен аудит, то никак. Максимум можно узнать дату создания.

maximovega

А как узнаю, настроен или нет?...

FRider

вообще есть добрый совет: если ты ит спец, который должен во всем этом разбираться, то начинай ботать с самых основ. Если ты не ит спец - то оставь сие дело специалистам.

hprt

ладно, ответ "нет" :) вряд ли у вас кто этим заморачивался

saveliev_a

Как можно узнать, каким способом была создана таблица на SQL-сервере?
А что ты собираешь делать после того, как узнаешь?

maximovega

Если нужно изменить в табличке decimal (5,5) на decimal(5,8 а опция Design говорит, что заданная пятёрка - это уже возможный максимум, что можно сделать, чтобы добавлять числа с 8 знаками после десятичной точки безболезненно для уже имеющихся данных? ALTER TABLE с заменой на Float?

Dasar

научись лучше (на "кошках", конечно, сначала) двум умением:
1. backup-ить базу и быстро ее восстанавливать.
2. делать копию базы и с ней отдельно работать
и привычке:
1. перед каждым нештатным изменением backup-ить базу.
после этого сможешь смело экспериментировать, и самостоятельно развиваться.
и сможешь перейти от вопросов к коллективному разуму уровня "как сделать ..." к вопросам уровня "я могу сделать ... тремя способами. какой способ предпочтительнее? и в каких случаях?".

okis

что делать, если база на 1tb?

hprt

Открыть наконец Books Online (BOL) или MSDN и прочитать что-нибудь про тип decimal. Например, что
decimal[ (p[ , s] )] and numeric[ (p[ , s] )]
Fixed precision and scale numbers. When maximum precision is used, valid values are from - 10^38 +1 through 10^38 - 1. The ISO synonyms for decimal are dec and dec(p, s). numeric is functionally equivalent to decimal.
p (precision)
The maximum total number of decimal digits that can be stored, both to the left and to the right of the decimal point. The precision must be a value from 1 through the maximum precision of 38. The default precision is 18.
s (scale)
The maximum number of decimal digits that can be stored to the right of the decimal point. Scale must be a value from 0 through p. Scale can be specified only if precision is specified. The default scale is 0; therefore, 0 <= s <= p. Maximum storage sizes vary, based on the precision.
2 - 1тб база не отменяет того, что тестировать надо на копии базы, а не на боевой, не так ли. Ей же не производительность тестировать - хватит и маленькой. А тут уже можно бэкапить

Dasar

>что делать, если база на 1tb?
приучиться гулять (потому что кофе столько не выпьешь) пока база backup-ится, копируется и восстанавливается
Оставить комментарий
Имя или ник:
Комментарий: