dbaspot
Tags Register FAQ Calendar Search Today's Posts Mark Forums Read

SQL script does not run within my ODBC session ? - sqlserver-odbc

This is a discussion on SQL script does not run within my ODBC session ? - sqlserver-odbc ; Hi, if I execute the following script in SQL Management Studio (SQLServer 2005), then it works. But when I use my ODBC application it fails. Is there anything wrong with the script when using ODBC ? Thanks a lot, Lothar ...


Home > Database Forum > Microsoft SQL Server > sqlserver-odbc > SQL script does not run within my ODBC session ?

Reply

 

LinkBack Thread Tools Display Modes
  #1  
Old 11-08-2008, 10:07 AM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default SQL script does not run within my ODBC session ?

Hi,
if I execute the following script in SQL Management Studio (SQLServer
2005), then it works. But
when I use my ODBC application it fails.
Is there anything wrong with the script when using ODBC ?
Thanks a lot,
Lothar
CREATE PROCEDURE lbDMF_DropConstraint @Table VARCHAR(50), @Name
VARCHAR(50)
AS
BEGIN
DECLARE @Statement1 VARCHAR(200)
DECLARE hSqlProc CURSOR LOCAL FOR
SELECT 'ALTER TABLE ' + @Table + ' DROP CONSTRAINT ' +
pr.name
FROM sysobjects pr
WHERE pr.xtype IN ('F') AND upper(pr.name) =
upper(@Name)
OPEN hSqlProc
FETCH hSqlProc INTO @Statement1
WHILE (@@fetch_status = 0)
BEGIN
EXECUTE (@Statement1)
FETCH hSqlProc INTO @Statement1
END
CLOSE hSqlProc
DEALLOCATE hSqlProc
END;
CREATE PROCEDURE lbDMF_DropTable @Table VARCHAR(50)
AS
BEGIN
DECLARE @Statement2 VARCHAR(200)
DECLARE hSqlProc CURSOR LOCAL FOR
SELECT 'DROP TABLE ' + pr.name
FROM sysobjects pr
WHERE pr.xtype IN ('U') AND upper(pr.name) =
upper(@Table)
OPEN hSqlProc
FETCH hSqlProc INTO @Statement2
WHILE (@@fetch_status = 0)
BEGIN
EXECUTE (@Statement2)
FETCH hSqlProc INTO @Statement2
END
CLOSE hSqlProc
DEALLOCATE hSqlProc
END;
CREATE PROCEDURE lbDMF_DropProc @Name VARCHAR(50)
AS
BEGIN
DECLARE @Statement3 VARCHAR(200)
DECLARE hSqlProc CURSOR LOCAL FOR
SELECT 'DROP ' + case pr.xtype when
'P' then 'PROCEDURE ' else 'FUNCTION ' end +
pr.name
FROM sysobjects pr
WHERE pr.xtype IN ('P','FN','TF') AND upper(pr.name) =
upper(@Name)
OPEN hSqlProc
FETCH hSqlProc INTO @Statement3
WHILE (@@fetch_status = 0)
BEGIN
EXECUTE (@Statement3)
FETCH hSqlProc INTO @Statement3
END
CLOSE hSqlProc
DEALLOCATE hSqlProc
END;
-- Association TestSteps -> TestStepsDetail
exec lbDMF_DropConstraint 'TestStepsDetail',
'fk_TestStepsDetail_TestSteps_ID';
-- Class is TestStepsMSSQL
exec lbDMF_DropTable 'TestSteps';
CREATE TABLE "TestSteps" (
"ID" INTEGER IDENTITY (1, 1) NOT NULL,
PRIMARY KEY ("ID"),
"Spalte1" CHAR(100)
);
-- Class is TestStepsDetailMSSQL
exec lbDMF_DropTable 'TestStepsDetail';
CREATE TABLE "TestStepsDetail" (
"ID" INTEGER IDENTITY (1, 1) NOT NULL,
PRIMARY KEY ("ID"),
"Spalte1" CHAR(100)
);
-- Association TestStepsDetail -> TestSteps with name ''
ALTER TABLE "TestStepsDetail" ADD "TestSteps" INT;
ALTER TABLE "TestStepsDetail" ADD CONSTRAINT
"fk_TestStepsDetail_TestSteps_ID" FOREIGN KEY ( "TestSteps" )
REFERENCES "TestSteps" ( "ID" );
exec lbDMF_DropProc 'lbDMF_DropTable';
exec lbDMF_DropProc 'lbDMF_DropConstraint';
exec lbDMF_DropProc 'lbDMF_DropProc';
This are the errors after executing the script in my application:
lbDB.cpp, 3884: Error in lbQuery: (SQLExecDirect()) 42000: 156 -
[Microsoft][ODB
C SQL Server Driver][SQL Server]Falsche Syntax in der N©¥he des
'PROCEDURE'-Schl¡Ã
sselwortes.
lbDB.cpp, 3884: Error in lbQuery: (SQLExecDirect()) 42000: 156 -
[Microsoft][ODB
C SQL Server Driver][SQL Server]Falsche Syntax in der N©¥he des
'PROCEDURE'-Schl¡Ã
sselwortes.
Reply With Quote
Reply

Thread Tools
Display Modes



All times are GMT -4. The time now is 08:39 AM.