![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с ADO
zero-g © (2006-10-30 10:25:00)Здравствуйте уважаемые коллеги!
У меня вопрос такого содержания...
Хочу соединится с 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;
вот .. ну и собственна сам вопрос.. А как мне Скрипт какой нить выполнить, чего писать надо ???
Соединится то соединяюсь.. но без основной работы смыслов в этом мало (
Anatoly Podgoretsky (2006-10-31 09:22:00) [1]Вот и договорились
sniknik (2006-10-31 08:42:00) [2]> Мне так больше нравится :-P
если бы тебе одному... а то это просто засилье какоето, практически все начинающие так пишут (некоторые продолжают и научившись), хотя это ничем не оправданно. не может быть чтобы всем одинаково нравилось... скорее вычитали/подсмотрели гдето.
> Это было лишнее.
с чего это? сама ошибка ясно и однозначно указывает причину, а вот по методам ты это определить можеш только косвенно перебирая и сопоставляя.
по аналогии, пытаешься открыть дверь, тебе голосом говорят "закрыто, доступ запрещен", ты не понимая начинаешь озираться и спрашивать окружающих "блин, а че оно не открывается то?"... ??? ну попробуй по другому, попробуй разными способами открыть (до приезда милиции ;о)), может дойдет, хотя самое ясное обьяснение уже прозвучало.
> В предь прожу либо отвечать на вопросы или пытаться объяснить, либо вообще не отвечать!
да нет проблем. договорились!
zero-g (2006-10-31 08:13:00) [3]Вообще-то любителям вырезать гланды через не стандартное место, рекомендуется почитать справку, потому что в первом же примере написано 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-30 11:19:00) [4]> ADOCommand.Connection := ADODBConnection; // тут вылетает
почитаешь модуль поймешь почему... хотя... ошибку то не понял, с чего решил что по описанию обьекта поймет? ;)
sniknik (2006-10-30 11:17:00) [5]не по вопросу, а просто интересно...
где учат вот этому (в каких книгах написано?)
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)
Плохиш (2006-10-30 11:16:00) [6]
> zero-g © (30.10.06 11:04) [2]
Вообще-то любителям вырезать гланды через не стандартное место, рекомендуется почитать справку, потому что в первом же примере написано ActiveConnection, почему вы используете какую-то Connection, совершенно не понятно.
zero-g (2006-10-30 11:04:00) [7]Попробывал пропихнуть 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);
В чем ошибка подскажите пожалуйста
ANB (2006-10-30 10:31:00) [8]Теперь к этому коннекту привязать ADOCommand, запихать ему в текст скл скрипт и пнуть на выполнение.