![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему после того как я ввожу Connection String внутри программы
IGORYOK © (2003-11-06 16:01:00)
Почему после того как я ввожу Connection String внутри программы - притом такой-же как с помощью билдера - моя программа виснет со StackOverflow. Потом пока не удалишь модуль из проекта при загрузке Дельфи будет появляться - Закрыть всё нафиг от Windowsa. Вопрос почему? При том ремарка - на одной проге это получилось, а на всех остальных не прошло -???????????
jazz (2003-11-06 17:48:00) [1]
я очень извиняюсь но у меня была такая проблема просто в самом начале на потасить ADOCon.ConnectionString:=эFILE NAME="+ а затем писать все остальное
jazz (2003-11-06 17:48:00) [2]
я очень извиняюсь но у меня была такая проблема просто в самом начале на потасить ADOCon.ConnectionString:=FILE NAME="+ а затем писать все остальное
IGORYOK (2003-11-06 17:45:00) [3]
Я понял в чём дело оказывается Active стоял True и он пытался загрузить базу без ConnectionString при инициализации. И это приводило к такому
Алилуя Я опять люблю весь мир у Вас ребята Спасибо за всё
sniknik (2003-11-06 17:42:00) [4]
> Это всё что там есть!
а ничего больше и не надо.
procedure TDM.AllSongsT AfterPost(DataSet: TDataSet);
begin
....
DataSet. Post;
end;
(хотя позволю себе не согласится, там еще должно быть "end." как минимум)
sokohigh (2003-11-06 17:33:00) [5]
попробуй переименовать mdb, или в dfm-е скинь свойство Connected у ADOConnection
IGORYOK (2003-11-06 17:25:00) [6]
sokohigh (06.11.03 17:23) [5]
я не могу подобное вписать потому- что сам проект не могу открыть
IGORYOK (2003-11-06 17:24:00) [7]
Программа DELPHI32 вызвала сбой при обращении к странице памяти
в модуле ADORTL60.BPL по адресу 017f:40667785.
Регистры:
EAX=05c19a8c CS=017f EIP=40667785 EFLGS=00010202
EBX=4066cd07 SS=0187 ESP=00db0000 EBP=00eaf704
ECX=0000000d DS=0187 ESI=00db1f08 FS=34b7
EDX=40058920 ES=0187 EDI=00eaf6e8 GS=0000
Байты по адресу CS:EIP:
e8 ee ff ff ff c3 90 55 8b ec 6a 00 6a 00 6a 00
Содержимое стека:
4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a 4066778a
Вот что появляется при загрузке проекта.
Значит дело в инициализации
Скажите неужели у Вас такого не происходило?
sokohigh (2003-11-06 17:23:00) [8]
Попробуй что-нибудь, типа этого, может станет яснее:
with ADOConnection1 do
try
Connected := false;
ConnectionString := "...";
Connected := true;
except
on E:Exception do ShowMessage(E.Message);
end
;
bushmen (2003-11-06 16:18:00) [9]
>IGORYOK ©
Вам еще не надоело задавать бессмысленные вопросы?
IGORYOK (2003-11-06 16:17:00) [10]
unit DMod;
interface
uses
SysUtils, Classes, DB, ADODB, Dialogs, Forms;
type
TDM = class(TDataModule)
ADOCon: TADOConnection;
TapesT: TADOTable;
PerfT: TADOTable;
AllSongsT: TADOTable;
TapesDS: TDataSource;
PerfDS: TDataSource;
AllSongsDS: TDataSource;
AllSongsTNumOfTape: TIntegerField;
AllSongsTNameOfSong: TWideStringField;
TapesTNumOfTape: TAutoIncField;
TapesTCasNum: TIntegerField;
TapesTPerfName: TWideStringField;
TapesTAlbumName: TWideStringField;
TapesTYearPresentation: TIntegerField;
TapesTPlace: TWideStringField;
PerfTPerNameShort: TWideStringField;
AllSongsTIDPesna: TAutoIncField;
procedure AllSongsTAfterPost(DataSet: TDataSet);
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var DM: TDM;
implementation
uses MainF;
{$R *.dfm}
procedure TDM.AllSongsTAfterPost(DataSet: TDataSet);
begin
if DataSet.FieldByName("NumOfTape").IsNull then begin
DataSet.Edit;
DataSet.FieldByName("NumOfTape").AsInteger:=TapesT.FieldByName("CasNum").AsInteger;
DataSet.Post;
end;end;
procedure TDM.DataModuleCreate(Sender: TObject);
begin
ADOCon.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+ ExtractFilePath(Application.ExeName)+"Data\mainbase2000.mdb;Mode=Share Deny None;";
TapesT.Active:=true;PerfT.Active:=true;
AllSongsT.Active:=true;
end;
Это всё что там есть!
Естественно по Data\mainbase2000.mdb находиться база
Просто раньше для удобства там стоял стринг автоматически чтобы можно было удобно компилить - потом заменил и опаньки, так главно в другой проге сделал так же и нормально, а здесь даже Дельфи валиться. Может это защитный механизм ADO
sniknik (2003-11-06 16:08:00) [11]
проверь код, строки с 17-й по ... а до конца. особое внимание обрати на код в обработчиках событий т.к. в одном из них ты вызываеш метод который егоже (это событие) генерит.
Eugene1501 (2003-11-06 16:07:00) [12]
Наверное что-то зацикливается. Посмотри внимательно на обработу событий TConnection.