Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Вниз

Работа с ADO   Найти похожие ветки 

 
zero-g ©   (2006-10-30 10:25) [0]

Здравствуйте уважаемые коллеги!

У меня вопрос такого содержания...
Хочу соединится с MS SQL Server используя ADO и выполнить чего нить, какой нить скрипт...

Если делать так...

uses DB, ADODB;
...
var ConnectionString: AnsiString;
    MainADOQuery: TADOQuery;
...
ConnectionString := "Provider=SQLOLEDB.1; Password = MainPas;  User ID = MainUs; Initial Catalog = Master; Data Source = MainSer;";
MainADOQuery := TADOQuery.Create(nil);
MainADOQuery.ConnectionString := ConnectionString;
MainADOQuery.SQL.Text := "Create database Sasha";
MainADOQuery.ExecSQL;
MainADOQuery.Free;

То все работает нормально...
Но эт не интересно =)

Я Делаю так.

uses comobj;
....
var ConnectionString: AnsiString;
   ADODBConnection: OleVariant;
....
ConnectionString := "Provider=SQLOLEDB.1; Password = MainPas;  User ID = MainUs; Initial Catalog = Master; Data Source = MainSer;";
ADODBConnection := CreateOleObject("ADODB.Connection");
ADODBConnection.CursorLocation := 3;
ADODBConnection.ConnectionString := ConnectionString;
ADODBConnection.Open;
...
Application.MessageBox("Connection OK!", "Information", MB_OK);
...
ADODBConnection.Close;

вот .. ну и собственна сам вопрос.. А как мне Скрипт какой нить выполнить, чего писать надо  ???

Соединится то соединяюсь.. но без основной работы смыслов в этом мало (


 
ANB ©   (2006-10-30 10:31) [1]

Теперь к этому коннекту привязать ADOCommand, запихать ему в текст скл скрипт и пнуть на выполнение.


 
zero-g ©   (2006-10-30 11:04) [2]

Попробывал пропихнуть ADOCommand выдает ошибку

"Method "Connection" not supported by automation object"

пишу:

uses comobj;
....
var ConnectionString: AnsiString;
   ADODBConnection,ADOCommand: OleVariant;
...
ConnectionString := "Provider=SQLOLEDB.1; Password = MainPas;  User ID = MainUs; Initial Catalog = Master; Data Source = MainSer;";

ADODBConnection := CreateOleObject("ADODB.Connection");
ADODBConnection.ConnectionString := ConnectionString;
ADODBConnection.Open;

ADOCommand := CreateOleObject("ADODB.Command");
ADOCommand.CommandText :=  "Create database Sasha";

ADOCommand.Connection := ADODBConnection; // тут вылетает

ADOCommand.Execute;

ADOCommand.Connection := nil;
ADODBConnection.Close;

Application.MessageBox("OK!", "Information", MB_OK);

В чем ошибка подскажите пожалуйста


 
Плохиш ©   (2006-10-30 11:16) [3]


> zero-g ©   (30.10.06 11:04) [2]

Вообще-то любителям вырезать гланды через не стандартное место, рекомендуется почитать справку, потому что в первом же примере написано ActiveConnection, почему вы используете какую-то Connection, совершенно не понятно.


 
sniknik ©   (2006-10-30 11:17) [4]

не по вопросу, а просто интересно...
где учат вот этому (в каких книгах написано?)
ConnectionString := ;
...
ADODBConnection.ConnectionString := ConnectionString;
?
неужели такая запись понятнее/лучше чем простое
ADODBConnection.ConnectionString :=
 "Provider=SQLOLEDB.1;Password=MainPas;User ID=MainUs;Initial Catalog=Master;Data Source=MainSer;"
?
лишняя переменная, + "украшательство" приводящее только к избыточному парсингу параметров...

(наверное в той же книге где советуют ADOQuery вместо ADOCommand :о))))

по вопросу
залезь в модуль ADOInt, изучи... раз уж хочется непосредственно с обьектами  
работать, пока (по вопросу) тебе нужны 2 обьекта Connection(_Connection) и Command(_Command)


 
sniknik ©   (2006-10-30 11:19) [5]

> ADOCommand.Connection := ADODBConnection; // тут вылетает
почитаешь модуль поймешь почему... хотя... ошибку то не понял, с чего решил что по описанию обьекта поймет? ;)


 
zero-g ©   (2006-10-31 08:13) [6]

Вообще-то любителям вырезать гланды через не стандартное место, рекомендуется почитать справку, потому что в первом же примере написано ActiveConnection, почему вы используете какую-то Connection, совершенно не понятно.

По поводу этого, учится на чужих открытых кодах никто не запрещал... Тем более я это делаю первый раз если че так.
По поводу справки, у мя как таковой нет.. и я ковыряю все что и где найду.
А вот вместо того чтоб казаться умным, могли бы объяснить. Это было бы куда лучше.

не по вопросу, а просто интересно...
где учат вот этому (в каких книгах написано?)
ConnectionString := ;
...
ADODBConnection.ConnectionString := ConnectionString;
?
неужели такая запись понятнее/лучше чем простое
ADODBConnection.ConnectionString :=
"Provider=SQLOLEDB.1;Password=MainPas;User ID=MainUs;Initial Catalog=Master;Data Source=MainSer;"
?
лишняя переменная, + "украшательство" приводящее только к избыточному парсингу параметров...

(наверное в той же книге где советуют ADOQuery вместо ADOCommand :о))))


Мне так больше нравится :-P

по вопросу
залезь в модуль ADOInt, изучи... раз уж хочется непосредственно с обьектами  
работать, пока (по вопросу) тебе нужны 2 обьекта Connection(_Connection) и Command(_Command)


За это спасибо. Посмотрю.

ошибку то не понял, с чего решил что по описанию обьекта поймет? ;)

Это было лишнее.

PS>
Уважаемые коллеги

В предь прожу либо отвечать на вопросы или пытаться объяснить, либо вообще не отвечать!

А вот Умничать и казаться умным в определенной области в глазах другого человека тыкая в это его лицом не стоит! Это некоректно с важей стороны.

А вот как я учусь, смотрю открытый код, читаю кники итд.. это сугубо МОЕ личное дело!
А вот в плагиатстве чего чего абвинять не надо, вы этого даже доказать не сможете!

Яко есть Статья УК РФ про кливету.

Спасибо
С уважением.


 
sniknik ©   (2006-10-31 08:42) [7]

> Мне так больше нравится :-P
если бы тебе одному... а то это просто засилье какоето, практически все начинающие так пишут (некоторые продолжают и научившись), хотя это ничем не оправданно. не может быть чтобы всем одинаково нравилось... скорее вычитали/подсмотрели гдето.

> Это было лишнее.
с чего это? сама ошибка ясно и однозначно указывает причину, а вот по методам ты это определить можеш только косвенно перебирая и сопоставляя.
по аналогии, пытаешься открыть дверь, тебе голосом говорят "закрыто, доступ запрещен", ты не понимая начинаешь озираться и спрашивать окружающих "блин, а че оно не открывается то?"... ??? ну попробуй по другому, попробуй разными способами открыть (до приезда милиции ;о)), может дойдет, хотя самое ясное обьяснение уже прозвучало.

> В предь прожу либо отвечать на вопросы или пытаться объяснить, либо вообще не отвечать!
да нет проблем. договорились!


 
Anatoly Podgoretsky ©   (2006-10-31 09:22) [8]

Вот и договорились



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.042 c
2-1167461613
AlexeyT
2006-12-30 09:53
2007.01.21
Создать пункт меню в правой части MainMenu


2-1167913967
Chaval
2007-01-04 15:32
2007.01.21
Проблема с использованием функции GetDriveType


1-1164480626
Pepelyaev
2006-11-25 21:50
2007.01.21
Com Port


15-1167486457
vrem
2006-12-30 16:47
2007.01.21
ПРАЗДНИК - что не нравится?


2-1167032516
KyRo
2006-12-25 10:41
2007.01.21
Подскажите как сделать DBGrid без скролов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский