veri aktarım

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
a4tech

veri aktarım

Mesaj gönderen a4tech »

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
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »


Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
a4tech

selamünaleyküm

Mesaj gönderen a4tech »

sayın kıdemlı üyem yapamadım....:(
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Neresinde Tıkandınız Kodlarda Anlamadığınız yermi var? Kodlarınızı dökermisiniz?

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.
a4tech

kardeşim bu hatayı verdi

Mesaj gönderen a4tech »

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
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

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...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
a4tech

sayın kıdemli üyem

Mesaj gönderen a4tech »

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
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Yazdığınız kod'u yazın beraber düzeltmeleri yapalım Birde veritabanınızdaki alan tiplerini belirtin.

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.
a4tech

veriler

Mesaj gönderen a4tech »

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.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kodu ilk önce bir düzenliyelim.

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; 
Asıl problemi es geçmişsin Tablondaki Alan tiplerini belirtmemişsin.

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.
a4tech

tablo özellikleri

Mesaj gönderen a4tech »

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
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Bu şekilde muhtemelen çalışması lazım.

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.
a4tech

selamünaleyküm

Mesaj gönderen a4tech »

aynı hata abi............. :(
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Projenizi gönderin mail adresime bir ara bakarım.

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.
a4tech

ben sunu söylemeyi unuttum

Mesaj gönderen a4tech »

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
Cevapla