veri aktarım
veri aktarım
ado ile excel den verileri dbgride çektim diğer bir ado dataset ile de diğer dbgride sql server 2000 den verileri çektim exceldeki field adları ile sql server 200 deki table isimlerini aynı yaptım...exceldeki verileri sql serverdeki table nasıl aktarırım...yardımcı olabilrimisiniz
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Neresinde Tıkandınız Kodlarda Anlamadığınız yermi var? Kodlarınızı dökermisiniz?
Kolay Gelsin...
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
kardeşim bu hatayı verdi
bu hatayı verdi sthar_gcmik integer değerlere sahip
Project excel.exe raised exception class Edatabaseerror with message 'STHAR_GCMIK' is not a valid floating point value for field 'STHAR_GCMIK'. Proccess stopped. Use Step or Run to Continue
Project excel.exe raised exception class Edatabaseerror with message 'STHAR_GCMIK' is not a valid floating point value for field 'STHAR_GCMIK'. Proccess stopped. Use Step or Run to Continue
Tür uyuşmazlığı var String Değeri integer alana atamaya çalışıyorsunuz Excel deki veriler String olarak gelecektir. Gerekli yerlerde Tür değişimi yapınız.
Kolay Gelsin...
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
sayın kıdemli üyem
hayatımda ilk defa bilgi atıyorum excelden bir yere ve gerekli yerleri değiştir diyorsun...biraz yardımcı olabilirmisin burdaki sutunları satırları tek tek seçmiyoruz ki ben nereyi değistirecem
Yazdığınız kod'u yazın beraber düzeltmeleri yapalım Birde veritabanınızdaki alan tiplerini belirtin.
Kolay Gelsin...
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
veriler
excel tabloları
STOK_KODU FISNO DEPO_KODU STHAR_ACIKLAMA
A00-0011 111111 500 10023
A00-0012 111111 500 10023
STHAR_FTIRSIP STHAR_CARIKOD
6 10023
6 10023
aşağıdaki sütünlar ve yukarıdaki sütunlar excelde yan yana
aşağıya da kodları yazıyorum.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADODB, DB, Grids, DBGrids, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
ADOTable1: TADOTable;
ADOTable1STOK_KODU: TStringField;
ADOTable1FISNO: TStringField;
ADOTable1STHAR_GCMIK: TBCDField;
ADOTable1DEPO_KODU: TSmallintField;
ADOTable1STHAR_ACIKLAMA: TStringField;
ADOTable1STHAR_FTIRSIP: TStringField;
ADOTable1STHAR_CARIKOD: TStringField;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Label1: TLabel;
Label2: TLabel;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
book:variant;
excel,sheet:variant;
satir, sutun:integer;
str:string;
implementation
uses ComObj;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
excel := createOleObject('Excel.application');
OpenDialog1.Filter := 'Excel Dosyaları (*.xls)|*.xls';
if opendialog1.Execute then
begin
book:= Excel.WorkBooks.Open(OpenDialog1.FileName);
try
Screen.Cursor := crHourGlass;
sheet := book.worksheets[1];
for satir:=1 to 2500 do
begin
str := sheet.cells[satir, 1];
if (str <> '') then
begin
Update;
ADOTable1.Append;
for sutun:=1 to 7 do
adoTable1.Fields[sutun-1].AsString :=sheet.cells[satir, sutun];
adoTable1.Post;
end;
end;
Excel.quit;
excel:=Unassigned;
finally
Screen.Cursor := crDefault;
end;
end;
End;
procedure TForm1.FormShow(Sender: TObject);
begin
adoTable1.Open;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
adoTable1.Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
STOK_KODU FISNO DEPO_KODU STHAR_ACIKLAMA
A00-0011 111111 500 10023
A00-0012 111111 500 10023
STHAR_FTIRSIP STHAR_CARIKOD
6 10023
6 10023
aşağıdaki sütünlar ve yukarıdaki sütunlar excelde yan yana
aşağıya da kodları yazıyorum.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADODB, DB, Grids, DBGrids, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
ADOTable1: TADOTable;
ADOTable1STOK_KODU: TStringField;
ADOTable1FISNO: TStringField;
ADOTable1STHAR_GCMIK: TBCDField;
ADOTable1DEPO_KODU: TSmallintField;
ADOTable1STHAR_ACIKLAMA: TStringField;
ADOTable1STHAR_FTIRSIP: TStringField;
ADOTable1STHAR_CARIKOD: TStringField;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Label1: TLabel;
Label2: TLabel;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
book:variant;
excel,sheet:variant;
satir, sutun:integer;
str:string;
implementation
uses ComObj;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
excel := createOleObject('Excel.application');
OpenDialog1.Filter := 'Excel Dosyaları (*.xls)|*.xls';
if opendialog1.Execute then
begin
book:= Excel.WorkBooks.Open(OpenDialog1.FileName);
try
Screen.Cursor := crHourGlass;
sheet := book.worksheets[1];
for satir:=1 to 2500 do
begin
str := sheet.cells[satir, 1];
if (str <> '') then
begin
Update;
ADOTable1.Append;
for sutun:=1 to 7 do
adoTable1.Fields[sutun-1].AsString :=sheet.cells[satir, sutun];
adoTable1.Post;
end;
end;
Excel.quit;
excel:=Unassigned;
finally
Screen.Cursor := crDefault;
end;
end;
End;
procedure TForm1.FormShow(Sender: TObject);
begin
adoTable1.Open;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
adoTable1.Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
Kodu ilk önce bir düzenliyelim.
Asıl problemi es geçmişsin Tablondaki Alan tiplerini belirtmemişsin.
AlanAdları sırasıyla Integer mı Stringmi?
Kolay Gelsin...
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
excel := createOleObject('Excel.application');
OpenDialog1.Filter := 'Excel Dosyaları (*.xls)|*.xls';
if opendialog1.Execute then
begin
book:= Excel.WorkBooks.Open(OpenDialog1.FileName);
try
Screen.Cursor := crHourGlass;
sheet := book.worksheets[1];
for satir:=1 to 2500 do
begin
str := sheet.cells[satir, 1];
if (str <> '') then
begin
Update;
ADOTable1.Append;
for sutun:=1 to 7 do
adoTable1.Fields[sutun-1].AsString :=sheet.cells[satir, sutun];
adoTable1.Post;
end;
end;
Excel.quit;
excel:=Unassigned;
finally
Screen.Cursor := crDefault;
end;
end;
End;
AlanAdları sırasıyla Integer mı Stringmi?
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
tablo özellikleri
Gerçekten kusura bakmayın...acele ile bunları göndermeyi unutmusum
SQl Server Database field özellikleri
STOK VARCHAR 35
FIS NO VARCHAR 15
DEPO KODU SMALLINT
STHAR_ACIKLAMA VARCHAR 35
STHAR_FTIRSIP CHAR 1
STHAR_CARIKOD VARCHAR 15
SQl Server Database field özellikleri
STOK VARCHAR 35
FIS NO VARCHAR 15
DEPO KODU SMALLINT
STHAR_ACIKLAMA VARCHAR 35
STHAR_FTIRSIP CHAR 1
STHAR_CARIKOD VARCHAR 15
Bu şekilde muhtemelen çalışması lazım.
Kolay Gelsin...
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
excel := createOleObject('Excel.application');
OpenDialog1.Filter := 'Excel Dosyaları (*.xls)|*.xls';
if opendialog1.Execute then
begin
book:= Excel.WorkBooks.Open(OpenDialog1.FileName);
try
Screen.Cursor := crHourGlass;
sheet := book.worksheets[1];
for satir:=1 to 2500 do
begin
str := sheet.cells[satir, 1];
if (str <> '') then
begin
Update;
ADOTable1.Append;
for sutun:=1 to 6 do
if sutun = 3 Then // 3 ncü alanın integer oduğunu varsayalım.
adoTable1.Fields[sutun-1].AsInteger := StrToInt(sheet.cells[satir, sutun]) //------------------------------------
Else
adoTable1.Fields[sutun-1].AsString :=sheet.cells[satir, sutun];
adoTable1.Post;
end;
end;
Excel.quit;
excel:=Unassigned;
finally
Screen.Cursor := crDefault;
end;
end;
End;
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Projenizi gönderin mail adresime bir ara bakarım.
Kolay Gelsin..
Kolay Gelsin..
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
ben sunu söylemeyi unuttum
benim sql deki tablom çok daha fazla büyük ama ben sadece excel de eklediğim kadar tabloyu göndermek istiyorum içeri yani............
25 tane field varsa table da
benim excelden göndermek istediğim içeri 6 table ben normal olarak integer olan depoyu da kaldırdığım kalde yine aynı hatayı verdi
25 tane field varsa table da
benim excelden göndermek istediğim içeri 6 table ben normal olarak integer olan depoyu da kaldırdığım kalde yine aynı hatayı verdi