Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что не так? [D6, MSSQL]


Valeris ©   (2003-01-17 19:36:00) 

Пишу простую консольную программу которая дожна добавлять записи через ODBC в SQL.

program spalm;

{$APPTYPE CONSOLE}
uses
SysUtils, DBTables;

var DB: TDataBase;
Query: TQuery;
begin

DB:= TDatabase.Create(nil);
DB.AliasName:="revisor_1c";
DB.DataBaseName:="revisor";
DB.LoginPrompt:=False;

try
DB.Connected:=true;
finally
DB.Free;
DB.Connected:=false;
end;
end.

Почему на DB.Connected:=true выкидывает системную ошибку ругается память cannot read и т.д. Наверное что-то не так делаю.

Подскажите плиз что может быть не так.


Valeris   (2003-01-20 11:44:00) [1]

Спасибо огромнейшое господам sniknik и Anatoly Podgoretsky


sniknik   (2003-01-20 11:24:00) [2]

гдето чегото путаеш, т.к. текст ADO не приведен то можно только догадыватся где.
вот рабочий код, без проверок на ошибки и т.д. и база подключается однозначно, но тем неменее отрабатывает и таблица создается

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils, ADODB, ActiveX;

var
ADOConnection: TADOConnection;
ADOCommand: TADOCommand;

begin
CoInitialize(nil);
ADOConnection:= TADOConnection.Create(nil);
ADOCommand:= TADOCommand.Create(nil);
ADOConnection.ConnectionString:= "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind";
ADOConnection.LoginPrompt:= false;
ADOCommand.Connection:= ADOConnection;
ADOCommand.CommandText:= "CREATE TABLE TestTable (TestField Char(10))";
ADOCommand.Execute;
ADOCommand.Free;
ADOConnection.Free;
coUnInitialize();
end.


Anatoly Podgoretsky   (2003-01-20 11:15:00) [3]

А чего ты образаешься к DB не проверив, а создалось ли оно вообще, try должен быть сразу после Create, это наряду к тем ошибкам которые тебе указали.

По сути у тебя без ошибки только эта строчка DB:= TDatabase.Create(nil);, остальное чистое везение или в случае с DB.Connected:=false; грубейшая ошибка.


Valeris   (2003-01-20 10:51:00) [4]

И имя переменной поменял и через ADO попробывал - те же глюки


sniknik   (2003-01-20 10:21:00) [5]

Через ADO делается без проблем.


Reindeer Moss Eater   (2003-01-20 10:20:00) [6]

Не надо называть переменные именами стандартных модулей Delphi.
DB.Connected:=true;


Valeris   (2003-01-20 10:18:00) [7]

У кого может есть какие мысли? хелп


gsu   (2003-01-17 19:52:00) [8]

сори по 1 пункту, даю 20%


gsu   (2003-01-17 19:51:00) [9]

ха-ха, сори
1. возможно 80%, проверь revisor не существует
2. не DB.Free;
DB.Connected:=false
а DB.Connected:=false
FreeAndNil(DB);


Valeris   (2003-01-17 19:48:00) [10]

Даже если эту строчку закомментировать будет тоже самое.


gsu   (2003-01-17 19:42:00) [11]

может revisor не существует


Наверх

Титульная страница Поиск, карта сайта Написать письмо