|
Тема |
Re: A на тоя диалект на SQL как се разбира дали полето [re: NikB] |
|
Автор | Ada (Нерегистриран) | |
Публикувано | 02.11.07 16:28 |
|
|
Мога да ти предложа два еднакво тромави (но работещи) начина.
Първи начин:
TForm1 = class(TForm)
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DataSource1.DataSet = Query1
DBGrid1.DataSource = DataSource1
procedure TForm1.FormCreate(Sender: TObject);
begin
StrList:=TstringList.Create;
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * from парадокската таблица');
Query1.Prepare;
Query1.Open;
StrList.Clear;
for ii:=0 to DBGrid1.Columns.count-1 do
StrList.Add(DBGrid1.Columns[ii].Fieldname);
DBGrid1.visible:=false; // ако пречи
end;
добавяне на поле с име, присвоено на NewFieldName
ii:=0; stop:=false;
while ((ii< StrList.Count) and (not stop)) do
begin
stop:=AnsiSameText(StrList, NewFieldName);
if not stop then inc(ii);
end;
if not stop
then begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('ALTER TABLE парадокската таблица ADD '+ NewFieldName +' integer'); {примерно}
Query1.Prepare;
Query1.ExecSQL;
StrList.Add(Edit2.Text);
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * from парадокската таблица ');
Query1.Prepare;
Query1.Open;
end;
Втори начин:
Имаш
Table1,Table2:TТable
Table1 – таблица, към която трябва да се добавят полета
Table2 – празна таблица с всички необходими полета
Проверява се кои полета от Table2 липсват в Table1 и се добавят.
А има и трети начин: опитваш се да добавиш полетата, ако вече ги има, се получава едно дълго съобщение за грешка, което май няма други лоши последствия, освен стряскане на този, който работи с програмата.
Може да има и други начини, но с моя мижав опит с SQL стигнах до тук.
|
| |
|
|
|