Подскажите начинающему!

  • Автор темы graki
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

graki

Гость
#1
Поскажите пожалуйста, что не так в моем запросе. Я пытаюсь создать шаблон и выгружать в негоданные с помощью опредленных SQL-запросов... Но программка выдает ошибку.
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
stat:textfile;
sSql,path,SColname:string;
BeginCol, BeginRow,i,j,iBool:integer;
RowCount, ColCount : integer;
ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData : Variant;
TemplateFile: String;

begin
//координаты левого верхнего угла области в которую вводятся данные
BeginCol:=2;
BeginRow:=5;

//размеры выводимого массива данных
RowCount:=1;
ColCount:=4;

//создание Эксель
ExcelApp:=CreateOleObject('Excel.Application');

//отключанием реакцию Эксель на события, чтобы ускорить вывод
ExcelApp.Application.EnableEvents:=false;
//открываем шаблон
Workbook:=ExcelApp.WorkBooks.Add('c:\Documents and Settings\kundik\Рабочий стол\Копия Копия programm\Книга1.xls')
//создаем вариантный массив который заполним данными
ArrayData:= VarArrayCreate([0,RowCount,0,ColCount], varVariant);
//делаем Эксель видимым
ExcelApp.Visible:=true;
for i:=0 to listbox1.Items.Count do
begin
assignfile(stat,getcurrentdir+'\stat.sql');
reset(stat);
//подключение к базе
j:=1;
if (i mod 2)=1 then
begin
ibdatabase1.Connected:=false;
ibdatabase1.DatabaseName:=listbox1.Items[i];
try
ibdatabase1.Connected:=true;
except
listbox2.Items.Add(listbox1.Items[i-1]);
listbox2.Items.Add(listbox1.Items[i]);
listbox2.Items.Add('Ошибка подключения');
listbox2.Items.Add('*********************');
listbox1.Refresh;
listbox2.Refresh;
end;

while not EOF(stat) do {Всё что находиться до /* является запросом}
begin
readln(stat,sSql);
ibquery1.Active:=false;
if pos('/*',sSql)<=0 then
begin
ibquery1.SQL.Text:=ibquery1.SQL.Text+sSql;
end
else
begin
iBool:=1;
sColname:=sSql;
//showmessage(ibquery1.SQL.Text);
end;
if iBool=1 then
begin
ibquery1.Active:=true;
ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[1, i+1]:=ibdatabase1.DatabaseName;
ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[j+1, i+1]:=ibquery1.fieldbyname('col').AsString;
j:=j+1;
iBool:=0;
ibquery1.SQL.Clear;
end;
end;
closefile(stat);
end;
end;
Ошибка возникает на строчке:
Код:
//создаем вариантный массив который заполним данными
ArrayData:= VarArrayCreate([1,RowCount,1,ColCount], varVariant);
 
Статус
Закрыто для дальнейших ответов.