Cevap için teşekkürler. İhtiyacımı tam anlatamadım, bu da benim hatam..
Tablodaki tüm kayıtların (şart gözetmeksizin) tek alanına değer atamak 1 saniye civarında sürüyor.
örneğin:
Gayet hızlı.
Tabloyu baştan sona tarayıp satır satır tarayıp, bu alana 5 atamak dakikalar sürüyor.
Hızlandırmanın da bir yolunu bulamadım.
Örneğin
Kod: Tümünü seç
while Not dm.Query.EOF do
begin
Query.edit;
Query.FieldByName('myfield').AsInteger:=5;
Query.Post;
Query.Next;
end;
MyField alanına atacağım değer bir formülün sonucu
Kod: Tümünü seç
Procedure TForm1.CalculateDistances(mx,my,tx,ty:integer);
var x1,y1:integer;
dx,dy:integer;
m:Extended;
cr,rc:integer;
Function haritamesafe(a,b:integer):integer;
var d:integer;
begin
d:=abs(a-b);
if d>400 then d:=abs(d-(801));
result:=d;
end;
Function mesafe(x,x1,y,y1:integer):extended;
begin
dx := haritamesafe(x,x1);
dy := haritamesafe(y,y1);
Result:=sqrt(dx*dx + dy*dy);
end;
Begin
while Not dm.Query.EOF do
begin
Query.Edit;
Query.FieldByName('myfield').asextended:=mesafe(mx,tx,my,ty);
Query.Post;
Query.Next;
end;
end;
Yapacağım işlem tam olarak bu, 30.000 civarı kayıt için 45dk-1 saat arası aman alıyor.
Yanlış anlaşılmasın, bana kodu hazırlayıp yazarsınız diye birşey ummuyorum.
Burada karşıma çıktı, başka zamanda ihtiyacım olabilir..
Sql de bu tip bir fonksiyon/değişken grubu tanımlama gibi bir imkan var mı?
javascriptler'i html kodlarında kullanırız ya, scripti bir yerde yazarız, sayfada istediğimiz yerde çağırır kullanırız..
Benzer bir yapıyı SQL'de kurabilirmiyiz?