Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.21;
Скачать: CL | DM;

Вниз

Работа с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
15-1167241312
Ringo
2006-12-27 20:41
2007.01.21
Москва остановилась.


15-1167225787
Ethik
2006-12-27 16:23
2007.01.21
Как насчет дождичка на Новый год?


2-1167194715
karton
2006-12-27 07:45
2007.01.21
Как нарисовать на форме поверх всех контролов


8-1145258401
Sub_Black
2006-04-17 11:20
2007.01.21
Bitmap=>Jpeg без модуля Jpeg соотвтственно.


11-1143901726
BMouradov
2006-04-01 18:28
2007.01.21
Не могу изменить направление шрифта дважды