Ъ пак търся помощ, ...

24 отговора 19 прегледа
#1

Ъ пак търся помощ, ...

съвети, идеи, предложения,.... всичко е добро дошло. Та значи блъскам си главата над следното: Искам с Transfer Method да копирам една съществуваща Баа данни на друг сервер. С тоз метод туй нещо ставало както четох из разни хелпове. Кода ми е нещо такова: Dim MyServer As SQLDMO.SQLServer Dim SQLDB, SQLDBNEW As SQLDMO.Database Dim oTransfer As SQLDMO.Transfer Set MyServer = New SQLDMO.SQLServer Set SQLDBNEW = New SQLDMO.Database Set oTransfer = New SQLDMO.Transfer 'Connect to the server and to the existing DB MyServer.Connect MyServerName, "sa", "" Set SQLDB = MyServer.Databases(MySQLDataBaseName) SQLDBNEW.Name = DBNewName With oTransfer .DestDatabase = DBNewName .DestServer = MyServer .CopyAllTables = True .CopyAllObjects = True .CopyAllDefaults = True .CopySchema = True End With SQLDB.Transfer (oTransfer) - това нещо май не е като хората и ми гърми. MyServer.Close Предварително благодаря на всички.
Отговор
в отговор на Веселина #2

хм

а на какво ти гърми? (каква грешка)
Отговор
в отговор на Веселина #3

хм

SQLDB.Transfer (oTransfer) май нещо параметрите не ги давам както трябва
Отговор
в отговор на Веселина #4

хм

добре де, прави ли някакъв трансфер, или гърми, или нищо не прави и си трае?
Отговор
в отговор на Веселина #5

така както си го написала...

би трябвало да не се компилира май... тия скоби нещо не ми харесват... разкарай ги.
Отговор
в отговор на Веселина #6

така както си го написала...

Сега сте пробвам без скобите. И ми дава грешка :"Automation error"
Отговор
в отговор на Веселина #7

и също така като гледам...

май повече dest-property-та ще трябва да сетнеш - Login, Password, или пък UseTrustedConnection. специално за тия не вярвам да има добри default-и.
Отговор
в отговор на Веселина #8

и също така като гледам...

Мдаа. Май си прав. В сущност аз си сканирвам една БД и искам да си създам същата ( друго име разбира се) на същия сервер (сега, а после на друг) и си правя едно класче. та рекох да опитам с тоз трансфер. Имаче продулжавам по традиционния начин, ама и там нещо ми гурмят индексите. Я да видим
Отговор
в отговор на Веселина #9

обаче напредваш със страшна сила

харесало ти е SQL-DMO-то :). такава библиотечка няма за нито един друг сървър - не че съм фен на самия сървър - той, горкия, е много зле спрямо Oracle като възможности за писане. и по други параметри е double destilled naked water, ама тва е друг въпрос. дерзай и питай.
Отговор
в отговор на Веселина #10

обаче напредваш със страшна сила

харесало е силна думичка. Просто за сега ми върши най-добра работа с оглед на проекта ми. Ъ както и да е. я дай сега пак да запитам. Сканирам си като прилежно момиче всички индекси, но ми дава нещо интересно. index.type = 2050, index.type = 2097152 i 2097154. Гледах в constants за индексите и такива не видях. Някаква идея относно това? Хм, май те затрупвам с въпроси.
Отговор
в отговор на Веселина #11

по-подробно?

какво ще рече сканираш си индексите? нещо с sp_indexes или с SQL-DMO-то? ако можеш направо да ми копнеш тук кода, който е проблемен (аз поне няма да го тафя, обещавам :))
Отговор
в отговор на Веселина #13

по-подробно?

аха, вдянах. имаш предвид, че има един бит, дето не е описан? мхм да, тоя старшия бит имам предвид... ще потърся инфо. ако разкараш него, първия ти индекс не е уникален, а втория е.
Отговор
в отговор на Веселина #14

то пък великия код ....

където всичко си е прилежно зададено и сет-нато. For Each SQLIndex In SQLTable.Indexes Pr Space$(5) & "' Index " & SQLIndex.Name Pr Space$(5) & "Set sqlindex = new sqldmo.indexes" With SQLIndex Pr Space(5) & "sqlindex.name = " & .Name Debug.Print SQLIndex.Name & SQLIndex.Type Pr Space(5) & "SQLIndex.Type = " & IndexType(.Type) End With For Each SQLColumn In SQLIndex.ListIndexedColumns Pr Space(5) & "SQLIndex.IndexedColumns = " & SQLColumn.Name Next SQLColumn Pr Space(5) & "SQLTable.BeginAlter" Pr Space(5) & "SQLTable.Indexes.Add (sqlindex)" Pr Space(5) & "SQLTable.DoAlter" Pr " " Next SQLIndex където pr ми една function дето ми пище директно в новия клас. и IndexType една функция дето ми връща като стринг цонтстантите
Отговор
в отговор на Веселина #15

то пък великия код ....

мхм и IndexType се чуди нещо, и то с право... проверих тук таме - НИКОЙ не знае за кво е тоя бит, включително и Microsoft не казват. кой знае за кво е резервиран. ще ровя още, ако намеря, ще постна. ми засега го маскирай и се прави, че го няма (най-вероятно наистина е reserved за нещо си). ти MSDN-а ли гледаш или SQL books online, и ако MSDN-а, от кога е? моя е от юли'99.
Отговор
в отговор на Веселина #16

то пък великия код ....

msdn - 2000 (3 сидита) ми е сегашен, пресен, а също така си гледкам и sql books on line, ама е много постен за sqldmo-то. ще продължавам борбата. май кодчето не е излязло много свят, но се разбира нали? Но ще чакам всяка информация и предложения и т.н. Мерси пак.
Отговор
в отговор на Веселина #17

то пък великия код ....

а случайно за някой индекс да ти е върнало по-малко от 2097152? щото ако не ти е, имам едно идиотско предположение. забелязала ли си, че едно от нещата, които връща sp_indexes е нек'ъв colating order - и винаги е Ascending. навежда ли те тва на някаква идея защо не би го имало в MSDN-а, и при тва колкото по-късна версия е, толкова по ще го няма. да, ама SQL-DMO-то вече е releas-нато и не могат да го сменят като MSDN-а. а може и да греша.
Отговор
в отговор на Веселина #18

то пък великия код ....

да връща ми 2050. А пък в константите за Index има 2048, дето е за (ако се не лъжа в този момент) за primary key. Сега отивам пак да го ръчна
Отговор
в отговор на Веселина #19

то пък великия код ....

охх, абе човек, 2050 означава 2048+2, демек, Primary Key + естествено, Unique... ти ме закла. та да се уточним - това, дето го гледаш, е бит-маска. демек, може да има всяка от тия стойности, събрана с произволно количество от другите стойности. (е, всяка стойност може да я прибавяш само по веднъж.) всички получени по този начин чисълца са валидни стойности за Index.Type. въпроса беше, че има един бит - 21-вия, ако имаш нулев, от ляво на дясно, за който няма стойност. почти бях намерил обяснение, бива ли да ми казваш, че имало и с по-малки стойности... язък за предположението :)
Отговор
в отговор на Веселина #20

абе аз ше бягам, чакат ме...

утре ако намеря нещо повече, ще постна. успех и пиши при ядове :)
Отговор