اجرای کوئری هایی که توی سرور می نویسیم از داخل دلفی
با سلام
من توی سرور sql بعضی وقت ها کوئری می نویسم و نتیجه اون را هم که همونجا می بینم
حالا میخوام این کار را از توی دلفی انجام بدم
مشکل اینه که دستورات کوئری زیاده و نمی دونم چطور اونها را بنویسم که اجرا بشه
با Memo و RichEdit هم امتحان کردم و نشد
کاری که انجام میدم اینه که دستورات را در memo کپی می کنم و بعد ADOQuery1.SQL.Text را معادل متن memo میزارم و بعد هم اجرای کوئری ولی اجرا با خطا انجام میشه
راه حلش چیه؟
ممنون
نقل قول: اجرای کوئری هایی که توی سرور می نویسیم از داخل دلفی
با سلام راهای مختلفی وجود دارد
1- Query1.Sql.Add('');
را در چند خط واردکنی
2- در محیط سرور stored procedure ایجاد کنی و در محیط دلفی آن را فرا خوانی کنی.
نقل قول: اجرای کوئری هایی که توی سرور می نویسیم از داخل دلفی
میخوام مثل صفحه Query توی SQL Server باشه
یک Memo یا RichEdit برای نوشتن دستورات و یک Button برای اجرا
نقل قول: اجرای کوئری هایی که توی سرور می نویسیم از داخل دلفی
خب مشکلتون کجاست؟
یک ADOQuery بگذار و محتویات Memo رو در SQL اون بریز و اون رو اجرا کن.
نقل قول: اجرای کوئری هایی که توی سرور می نویسیم از داخل دلفی
نمیشه
خطا میده
همون کد توی کوئری sql Server بدون خطا کار میکنه
USE [DatabaseName]
GO
CREATE TABLE #temp (
table_name sysname ,
row_count INT,
reserved_size VARCHAR(50),
data_size VARCHAR(50),
index_size VARCHAR(50),
unused_size VARCHAR(50))
SET NOCOUNT ON
INSERT #temp
EXEC sp_msforeachtable 'sp_spaceused ''?'''
SELECT a.table_name,
a.row_count,
COUNT(*) AS col_count,
a.data_size
FROM #temp a
INNER JOIN information_schema.columns b
ON a.table_name collate database_default
= b.table_name collate database_default
GROUP BY a.table_name, a.row_count, a.data_size
ORDER BY CAST(REPLACE(a.data_size, ' KB', '') AS integer) DESC
DROP TABLE #temp
این را توی سرور مینویسم که به من سایز جدولهای بانک را بده که خب کار می کنه
ولی همینو میزارم توی memo و منتقل میکنم توی کوئری خطا میده البته بجای DatabaseName اسم بانک باید نوشته بشه
پیام خطایی هم که میده اینه incorrect syntax near GO
قبل از اجرای کوئری هم با showmessage کد را میبینم عینا همونه که تو سرور اجرا میکنم
نقل قول: اجرای کوئری هایی که توی سرور می نویسیم از داخل دلفی
خب معلومه که باید ارور بده، مگر Go دستوره؟
اون کلمه Batch Separator هست و دستور نیست، وقتی دیتابیستون معلومه، نیازی نیست اون رو یوز کنید.
راهکار اینه که یک SP بسازید و از دلفی اون رو اجرا کنید.
نقل قول: اجرای کوئری هایی که توی سرور می نویسیم از داخل دلفی
حق با شما بود
دو خط اول را حذف کردم درست شد
ممنون:تشویق::تشویق: