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 ...
![]() |
| | LinkBack | Thread Tools | Display Modes |
|
#1
| |||
| |||
| 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. |
![]() |
« Previous Thread
|
Next Thread »
| Thread Tools | |
| Display Modes | |
| |
All times are GMT -4. The time now is 08:39 AM.




Linear Mode