Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 20:10   #1
stel2
Новичок
Джуниор
 
Регистрация: 04.06.2009
Сообщений: 3
По умолчанию Access и ADO

PHP код:
if item=1 then begin
cr
:=;
AdoTable1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+edit2.text+';Persist Security Info=False';
ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+edit2.text+';Persist Security Info=False';
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+edit2.text+';Persist Security Info=False';
k:=1;
t:='';
q:=DateToStr(Now());

for 
i:=1 to length(q) do begin
if q[i]<>'.' then t:=t+q[i];
end;

sl:=TStringList.create;
ADOConnection1.Connected:=true;
ADOConnection1.GetTableNames(sl,false);
s:='';

for 
r:=1 to y do s:=s+inttostr(r)+' VARCHAR( 43 ) NOT NULL, ';
s[length(s)-1]:=')';
s[length(s)]:=';';

for 
i:=0 to (sl.Count-1) do begin
If sl[i]=t then cr:=1
end
;

if 
cr=1 then begin
adoquery1
.Close;
adoquery1.SQL.Clear;
adoQuery1.SQL.ADD('DROP TABLE '+t+';');
adoQuery1.ExecSQL;
adoquery1.Close;
adoquery1.SQL.Clear;
adoQuery1.SQL.add('CREATE TABLE '+t+' ('+s);
adoQuery1.ExecSQL;
end
else begin
label1
.caption:=inttostr(sl.Count);
adoquery1.Close;
adoquery1.SQL.Clear;
with adoquery1.SQL do
add('CREATE TABLE '+t+' ('+s);
adoQuery1.ExecSQL;
//adoQuery1.SQL.Clear;


end;


ADOTable1.TableName:=(t);
ADOTable1.Open;
ADOTable1.append;



repeat
for R:=1 to Y do ADOTable1.FieldByName(inttostr(r)).value:=StringGrid1.Cells[(R),(k)];

inc(k,1);
ADOTable1.Post;
ADOTable1.Append;

until
K
>X;

ADOTable1.Close;


end;

ADOQuery1.Close;
ADOConnection1.Connected:=false;
sl.Destroy;
end



Вот такой вот код выполняеться при нажатии кнопки, сначало все ОК. Но на втором нажатии на эту же кнопку пишет, что такая база не найдена и проверьте путь. Всю голову изломал. Если кто подскажет лучше код может проще будет. Есть StringGrid, конектимся к базе, если есть такая же таблица то удаляем ее и создаем на ее месте новую и переносим туда данные из StringGrid.


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

Последний раз редактировалось stel2; 04.06.2009 в 21:07.
stel2 вне форума Ответить с цитированием
Старый 04.06.2009, 20:51   #2
stel2
Новичок
Джуниор
 
Регистрация: 04.06.2009
Сообщений: 3
По умолчанию

Нда чтото сам вобще не могу разобраться, хелп плз.

Самое интересное что если открыть базу в Ассess руками, а потом тупо закрыть (при этом из программы не выходить) после первого нажатия, то второе нажатие пройдет как по маслу а третье не сработает, только если открыть снова базу в Ассеss.

Последний раз редактировалось stel2; 04.06.2009 в 22:20.
stel2 вне форума Ответить с цитированием
Старый 05.06.2009, 07:04   #3
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

А зачем Вы подключаете отдельно AdoQuery и AdoTable, не лучше ли их связать AdoConnection,
Код:
ADOQuery1.Connection:=ADOConnection1;
S@fer вне форума Ответить с цитированием
Старый 05.06.2009, 08:11   #4
stel2
Новичок
Джуниор
 
Регистрация: 04.06.2009
Сообщений: 3
По умолчанию

Опа все заработало


концовка
ADOTable1.Close;
ADOTable1.TableName:='';
ADOQuery1.Close;
sl.Destroy;
adoconnection1.Close;

Сввязал на форме АDOTable с конектом и куери с конектом и сетр строки
AdoTable1.ConnectionString:='Provid er=Microsoft.Jet.OLEDB.4.0;Data Source='+edit2.text+';Persist Security Info=False';
ADOQuery1.ConnectionString:='Provid er=Microsoft.Jet.OLEDB.4.0;Data Source='+edit2.text+';Persist Security Info=False';


Пасиб большое не когда бы не догадался что дело в этом.
stel2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
access+delphi+ado aid_013 БД в Delphi 2 10.07.2010 09:28
Delphi <--> ADO <--> Access acid02 БД в Delphi 4 09.04.2009 16:29
ADO & Access Регишка БД в Delphi 7 24.11.2008 15:48
Access/ADO Anton_S БД в Delphi 2 26.05.2008 08:24
Delphi+ADO+Access Turpa Помощь студентам 12 15.10.2007 23:29