Way to change database control connection at runtime

Is there a way to change the database connection (the @jc:connection data-source-jndi-name) at runtime? I want to build only one database control and be able to use it against different connections.

Hi,
There is no way to do this as of now.
Ejbcontrol and service control has a method setJndiName and setEndPoint(wsdl url) respectively to do so. But database control doesn't and is a good enhancement.
Thanks a lot,
Vimala

Similar Messages

  • Project Server 2003 Change database and connection information

    I am working on Project Server 2003. I want to connect the running server to a different project server database and change database account information. How best to do it.

    Hello,
    You can do this with the edit site tool. See the following Kb for full details:
    http://support.microsoft.com/kb/905386
    Paul
    Paul Mather | Twitter |
    http://pwmather.wordpress.com | CPS

  • Changing connection at runtime

    How can I change the db connection at
    runtime in a bc4j and jsp application:
    I start from a standard db connection
    read from the app property file and then
    I read from the database connection information and I have to reconnect.
    Thank's in advance
    Mauro

    If you want to change connections, you first have to logout. Besides the logon_screen builtin does not change the connection, but it only sets several application properties.
    In the Forms Help there is an example how to use the logon_screen. It basically comes to the next pl/sql code:
    declare
    MyUsername VARCHAR2(40);
    MyPassword VARCHAR2(40);
    MyConnect VARCHAR2(40);
    begin
    logon_screen;
    MyUsername := Get_Application_Property(USERNAME);
    MyPassword := Get_Application_Property(PASSWORD);
    MyConnect := Get_Application_Property(CONNECT_STRING);
    logout;
    if MyConnect is not null then
    logon(MyUsername,MyPassword| |'@'| |MyConnect);
    else
    logon(MyUsername,MyPassword);
    end if;
    end;
    null

  • Unable to overwrite the ODBC connection in runtime

    Hi,
    I have a VS2008 application which is using CR2008. Problem is I am not able to change the ODBC connection in runtime to any server other than the one that was used to create the report
    We are using infoobject model to retrive the report form CMC.
    Couple of thing I tried.
    First One:
    ConnectionInfo objConnectionInfo = new ConnectionInfo();
                   objConnectionInfo.ServerName = "Server Name";
                   objConnectionInfo.DatabaseName = "Database Name";
                   objConnectionInfo.UserID = "UserID";
                   objConnectionInfo.Password = "Pwd
                   objConnectionInfo.IntegratedSecurity = true;
                   objConnectionInfo.AllowCustomConnection = true;
                   TableLogOnInfos objTableLogOnInfos = new TableLogOnInfos();
                   TableLogOnInfo objTableLogOnInfo = new TableLogOnInfo();
                   objTableLogOnInfo.ConnectionInfo = objConnectionInfo;
                   objTableLogOnInfos.Add(objTableLogOnInfo);
                    Crv.LogOnInfo = objTableLogOnInfos;
    Second One:
                        ReportLogons logns = ceReport.ReportLogons;
                        ReportLogon logn = logns[1];
                        logn.UseOriginalDataSource = false;
                        logn.CustomServerName = "ServerName";
                        logn.CustomDatabaseName = "Database Name";
                        logn.CustomUserName = "Userid";
                        logn.CustomPassword = "Pwd";
    Above methods I tries but I am unable to change my connection string,Some one please advise on this.

    Make sure you have SP 2:
    https://smpdl.sap-ag.de/~sapidp/012002523100009038092009E/cr2008win_sp2.exe
    Try one of our sample apps:
    https://wiki.sdn.sap.com/wiki/display/BOBJ/CrystalReportsfor.NETSDK+Samples
    recommend vbnet_win_dbengine
    Do this with a report that has no subreports 1st.
    In your code samples, you are trying to use integrated security in one, not in the other. Is the report designed with Integrated security or not? Re. integrated security, see [this|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b021e47e-be1d-2b10-c6b2-efa9db3abd6b] article.
    Ludek
    Follow us on Twitter http://twitter.com/SAPCRNetSup

  • Change Dynamic Prompt connection

    Hello,
    We migrated our Crystal Reports 12.2.0.290 reports (Off SAP ECC) from dev to QA environment. After changing the datasource connection to point to QA infosets, when we refresh the report the prompt LOV still points to Dev. We know this as before prompting we get a screen to enter our Dev userid/password and we see the Dev in server name and database name.
    Is there a way to change the prompt connection to QA? Or do we have to have to create new prompts in QA?
    Thanks,
    Nikhil

    Post your question to the Integration kit forum in BusinessObjects

  • Database Control in Oracle 10g

    hello eveybody
    i have got oracle10g installed on windows 2003 machine.i have two instances of oracle and two databases.now from the Database Control i am able to login to the default instance i.e ORCL. now i want to login to the other instance that i have created.can the Database Control connect to multiple instances or dose it connect to only a single instance.
    thanx
    parth

    hi
    its possible to connect more than 1 instances at a time..
    through URL port....
    oracle provide every instances default port
    in 10g. default port for oracle enterprise manager is 1561...
    u give for second instances 1561
    first u check
    through cmd> emctl status "databasename"
    Mohammadi
    Oracle DBA

  • Changing Database connection at runtime in CR2008

    Hi,
    I have a VS2008 application which is using CR2008 to generate pdf reports for the user. Problem is I am not able to change the database connection to any server other than the one that was used to create the report template.
    My environment has CR2008 SP2. I have tried reports with no paramter as well as the ones with parameters both dont seem to work.
    I have already tried a couple of things:
    a) report document refresh after loading it
    b) setting the database connection as
    this._crReport.DataSourceConnections[0].SetConnection(dbServerName, dbName, dbUserId, dbPwd);
    c) setting the database connection as
    tbls = this._crReport.Database.Tables;
                    bool test = false;
                    foreach (Table tbl in tbls)
                        tblLogonInfo = tbl.LogOnInfo;
                        tblLogonInfo.ConnectionInfo = connInfo;
                        tbl.ApplyLogOnInfo(tblLogonInfo);
                        test = tbl.TestConnectivity(); ** note this alwys return a true for the changed database server
    I have read a couple of thread but none has worked for me...Is this a known issue with CR2008?
    Thanks
    Kajal

    Hi Kajal,
    I am assuming that you are not changing the schema of the report at any point of time. I would suggest you to try pointing to the other database through designer to make sure that you can hit the database and the schema is correct. You can also create a udl file to check the database connectivity.
    Then just for testing purpose you can try the following code:
    ReportDocument reportDoc = new ReportDocument();
    reportDoc.Load("path of the report");
    reportDoc.SetDatbaseLocation("uid","pwd","Servername","tablename");
    reportDoc.SetParameterValues("Parameter-Name","values");
    CrystalReportViewer.ReportSoure=reportDoc;
    Does that help?
    Thanks.

  • Dynamic database connections at Runtime dbAdapter

    Hi
    I need to connect to a database defined a runtime in a BPEL process using the dbadapter. All the configuration parameters for making the connection are provided at runtime (connectionURL, User, Password) and i need a way to configure them in the dbAdapter make the connection and execute some SQLStatements.
    Until now we were testing with some bpelx Properties changing dynamically the name of the jndi (jca.jndi) that works fine, but we cant define a datasource for every database. We also tried with another set of properties for setting the connection at runtime (jca.mcf.ConnectionString, jca.mcf.Password,jca.mcf.UserName) unsuccessfully.
    Do you know a way to define connections parameters at runtime in dbAdapter? Is that possible with SOA version 11.1.1.6 ?
    If this is not possible what alternative do you suggest for making dynamic connections to a database.?
    Regards
    Sergio

    You can try using the function query-database and formulate the 4th parameter which is JDBC connect string at runtime.
    oraext:query-database()
    Returns a node-set by executing the sql-query against the specified database. The second parameter rowset indicates if the rows should be enclosed in a element. The third parameter row indicates if each row should be enclosed in a element. The fourth parameter datasource is either a JDBC connect string (jdbc:oracle:thin:USER-NAME/PASSWORD@HOST:PORT:SID) or a JNDI name for the database. Only Oracle Thin Driver is supported if JDBC connect string is used. Usage: oraext:query-database(sqlquery as string, rowset as boolean, row as boolean, datasource as string). Example: oraext:query-database('select last_name from employee where id=1234',false(),false(),'jdbc:oracle:thin:scott/tiger@localhost:1521:ORCL'.
    This does not require a database adapter .

  • Issue with changing database location at runtime

    I am having a similar issue to:
    Re: Issue with changing database location at runtime
    where I am using Crystal Reports 2008 SP 3 fix pack 3.3 and a OLE DB connection to a SQL 2008 R2 server. Running on a computer on the network where the report can see the original development server is fast, other computers where that server is not available are hanging 20 seconds before coming up.
    I am using the same code from the Crystal Sample app to change the connection on each table. I found that the slowness comes the first time the ReportDocument object is accessed to get the collection of database tables, before the connection info is set.
    Fix pack 3.4 was mentioned in that post.  Does fix pack 3.4 fix that issue? I don't see fix pack 3.4 on the downloads page (https://websmp130.sap-ag.de/sap%28bD1lbiZjPTAwMQ==%29/bc/bsp/spn/bobj_download/main.htm)

    I just found on the reports that were having the issue there was a SQL Expression.  Per this thread:
    Re: Report load is slow after changing database servers
    There was an issue with that and the fix is not out til the end of Feb so I found a way not to use the SQL Expression and the speed is much better.
    However, your information provided led me to this post:
    Cannot Change Table Location, but Only for One Report
    And I am also experiencing an issue where the table location is not changing on one subreport and I will look into that as a possible solution.
    Thanks so much for your help.

  • Right Way to change MBOs Connections

    Hellow Experts,
    I'm really enjoying the communication here, and I got a new one.
    Whats the right way of change MBOs Connections to SAP for instance?
    I tried 2 methods.
    Method One
    Title: Its just too much Work
    Proceeding:
    I start rebinding every MBO and  operatios to the new Connection.
    Drawback:
    If i have 1 MBO it may takes 30 seconds if they are 40 or 50 mbos it will take a lot of time.
    there are the output tables from bapis are recreated if dont they are deleted.
    so you have to reimplement all the operations one again. and it as the adicional
    problem that we all can miss something and do something wrong.
    Method Two
    Title: Simpler way
    Proceeding:
    change the connection profile itself at workspace from DEV->QA or QA->PRD
    Drawback:
    supposing that you want independence between the apps connections  like app1 is on DEV and ap 2 is on PRD.
    this will led to N connections per N applications.
    DEV: (Development)
    QA: (Quality)
    PRD: (Production)
    I would like to know if you guys have more approaches and what you think of this ones.
    Cheers,
    Laguerta

    Daniel Laguerta
    I will never follow method one as suggested by you.
    To add for the "Method 2", i will create a separate (new) workspace for different instance like DEV, QA, PROD.
    eg. Once DEV is done, i ll export the whole project, and import the same in a new workspace for QA.
         Create a new SUP QA and SAP connection profile
    Change connection profile to each mbo and its operations.
    And deploy to SUP QA Env
    Still it is time consuming.
    there is another method (should be preferable)
    Deploying mbo package from SCC instead of creating workspace and connection profiles.
    Deploying MBO from Sybase Control Center (SCC)
    Regards,
    JK

  • How to change Database server is case-insensitive setting at runtime

    Is there a way to change any of the properties in Report Options > General Settings at runtime. Mainly the [Database server is case-insensitive] and [Perform grouping on server] settings. We are using the Crystal .Net X1 runtimes (11.5.9707.811). I have sesrched the forums with no luck so thought I'd try my luck here. Thankyou for your time.

    Hi Simon,
    Sorry, search for the function using the Object Browser in .NET. If you have Crsytal Reports XI R2 (11.5.x.xxxx) then you have it. Unless it's not a developer version. In whcih case you need to upgrade.
    If you do have the Developer version then simply add the RAS assemblies to your project. Look in our samples above for more info on h ow to use RAS.
    If you don't have the Developer version then your only options are to upgrade or manually change the report settings in the Designer.
    Thank you
    Don

  • Set password for database connection at runtime

    Hi there,
    is it possible to set the password and/or the user for the database connection at runtime.
    The use case is to read the values from a file and decrypt them, and the to establish the conenction. So that i don't habe to redeploy everything if there is a change.
    Thanks in advance.

    How exactly do i set these values for the datasource?
    Edited by: Alex on 15.02.2012 09:50
    €: JDeveloper 11.1.1.5.0
    The use case is, that there is a file with an encrypted password. This should be decrypted and then be used for the connection. So when this encrypted passowrd changes, i don't want to edit and deploay the app once again. Instead the new encrypted password should be decrypted via code an then be used.
    Edited by: Alex on 15.02.2012 10:00

  • Changing databases from MS SQL Express to MySQL in a  Report at runtime

    Hi all,
    I have an issue in changing databases from MS SQL Express to MYSQL or vice versa in a Report at runtime.
    Here is what I do:
    I create a very simple report with the Crystal Report Designer 2008 V 12.3.0.601.
    This report uses a stored procedure to retrieve it's data. I connect to the Database with JDBC.
    I have two Databases with similar schema and procedures: MS SQL Express an MySQL.
    When I create the report with MSSQL all parameters have the '@' character, as they are named. ok.
    I deploy this report in a JSP application with the crystaldecisions SDK an show it in html viewer format.
    The connection to the MSSQL DB gets established by my JSP and the CRJavaHelper.
    I pass the parameters through my URL to the JSP and finally to the CRJavaHelper (addDiscreteParameterValue)
    and everything works fine.
    The challenge starts, when I try to change the Datasource of this report to MySQL at runtime (which is a requirement in my project).
    I successfully can establish the DBConnection, but my stored procedure just doesn't get called!
    The report just displays totally empty, no Exceptions etc. are thrown. In the DB logfile I see the effort to find my procedure
    and that's all. The Statements called by the SDK finds the correct Procedure, but there's no call to the procedure.
    Of course I know, that MS SQL names it's procedures slightly different (';1' at the end), but even when I rename the table Alias to the correct name in CRHelperJava, I get no call to the procedure in MySQL. I also renamed the parameter-fields in changeDataSource(..) by casting the table to IProcedure and working on its methods. Still no success.
    What am I missing to do or what do I do wrong?
    Any suggestions or even solutions?
    Best Regards,
    Tom

    after all I have managed to set param Values, now I'm stuck because the parms seem to have dissappeared in the formula fields. E.g. I receive this Exception:
    <br><br>
    com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: Ausnahme in Formel ""{@DurationMin}"" bei ""{dataProc.Duration}"":
    Dieser Feldname ist unbekannt.---- Error code:-2147467259 Error code name:failed
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:2285)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:733)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:167)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:529)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:527)
         at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(SourceFile:525)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:424)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:352)
         at com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54)
         at com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67)
         at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(SourceFile:716)
         at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125)
         at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537)
         at com.crystaldecisions.sdk.occa.report.application.RowsetController.getSQLStatement(SourceFile:1485)
         at org.apache.jsp.report_jsp._jspService(report_jsp.java:360)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
         at java.lang.Thread.run(Unknown Source)
    Caused by: com.crystaldecisions.reports.dataengine.DataEngineException: Ausnahme in Formel ""{@DurationMin}"" bei ""{dataProc.Duration}"":
    Dieser Feldname ist unbekannt.
         at com.crystaldecisions.reports.dataengine.DataSourceManager.do(SourceFile:692)
         at com.crystaldecisions.reports.dataengine.DataSourceManager.new(SourceFile:607)
         at com.crystaldecisions.reports.dataengine.DataSourceManagerCoordinator.a(SourceFile:505)
         at com.crystaldecisions.reports.dataengine.DataSourceManager.a(SourceFile:1060)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:729)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:699)
         at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.i(SourceFile:1308)
         at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.k(SourceFile:1297)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1310)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:661)
         ... 32 more
    Caused by: com.crystaldecisions.reports.formulas.FormulaException: Ausnahme in Formel ""{@DurationMin}"" bei ""{dataProc.Duration}"":
    Dieser Feldname ist unbekannt.
         at com.crystaldecisions.reports.formulas.o.a(SourceFile:1041)
         at com.crystaldecisions.reports.formulas.o.do(SourceFile:1013)
         at com.crystaldecisions.reports.formulas.o.new(SourceFile:688)
         at com.crystaldecisions.reports.formulas.o.else(SourceFile:459)
         at com.crystaldecisions.reports.formulas.f.void(SourceFile:65)
         at com.crystaldecisions.reports.formulas.FormulaParser.a(SourceFile:345)
         at com.crystaldecisions.reports.formulas.r.a(SourceFile:89)
         at com.crystaldecisions.reports.formulas.FormulaInfo.a(SourceFile:570)
         at com.crystaldecisions.reports.formulas.FormulaService.compile(SourceFile:347)
         at com.crystaldecisions.reports.reportdefinition.FormulaCompiler.a(SourceFile:139)
         at com.crystaldecisions.reports.reportdefinition.FormulaFieldDefinitionBase.compile(SourceFile:928)
         at com.crystaldecisions.reports.reportdefinition.o.a(SourceFile:1360)
         at com.crystaldecisions.reports.reportdefinition.o.a(SourceFile:1348)
         at com.crystaldecisions.reports.reportdefinition.o.a(SourceFile:4225)
         at com.crystaldecisions.reports.dataengine.DataSourceManager.do(SourceFile:687)
         ... 41 more
    <br><br>
    where dataProc is my stored procedure and @DurationMin is a function field.
    do I have to call verifyDatabase() when I have changed DBs and set the param Values?
    Is there a defined sequence to execute these steps?
    Edited by: tomspengler on Dec 8, 2011 1:55 PM

  • Changing Database connection on webservice deployment

    Hi All,
    I am having a problem changing the Database connection when deploying a PL/SQL generated webservice.
    What I have done is to use the WebService wizard to create a webservice based on a database Pl/SQL procedure. During this you have to specify the database connection (which initially is our dev server).
    When I come to deploy the service to our production platform I want to change the database descriptor name to point to an existing App Server data source.
    This is the problem - the Database Connection information is protected in the properties of the webservice - which means I cannot deploy to our production platform with the connection names I need.
    I can change the names of the Connections defined in the Connections tab - but then I cannot access the webservice in JDev.
    Everytime I deploy to our production platform I keep getting the development data sources created.
    Basically I need to develop a PL/SQL webservice using a Development connection (with a unique connection name), and then deploy to a production application server (10g AS) with a different connection name that points at our production env.
    I could create generic names, but that then would make my development system very confusing with the potential of messing up the production platform.
    Anyone got any ideas????
    Thanks and Regards
    Neil

    When you deploy the web service to the app server, if the connection to the other database is available from JDev at deployment time, the data sources xml file should be set up correctly with the db connection info. Otherwise this will have to be modified by hand on the app server to contain the connection details for the other DB.
    There are 3 files that will also have to be hand modified to reflect the different db connection details. 2 deployment descriptors, web.xml and oracle-webservices.xml which have references to the connection's jndi name, and also one of the JPublisher generated classes (the one whose name ends in 'Base') also has references to the jndi name (to look up the connection from the data source file) which will have to be modified, recompiled and redeployed.
    The simplest way to change the connection would actually be to leave everything alone and just modify the data sources xml file on the server such that the same jndi lookup points to a new connection, but it looks like the customer wants to change the name as well.
    An alternative to all this hand editing is to regenerate the service against the producion DB connection, test & then deploy the service.
    dai
    JDev devt. team

  • Change the ip of database control after installing?

    Hi all
    I had to wait for a while to get my database machine's fixed ip so I just installed the database figuring I'd change the ip later. So now I changed the ip and updates both the tnsnames.ora and tnslistener.ora files. I can access the database perfectly but when I open database control to create new users, it insists on connecting to the old ip. I've added a screenshot to illustrate. It's basically the ip in that connection string that needs to change.
    !http://users.telenet.be/Metallion/screenshot2.png!
    Thanks!

    Metallion,
    Is this the first page that comes up with the Database Control startup? The reason for asking this is that I have never seen this page where password for Sys users can be stored as a preferred credentials. This kind of page comes up in Isqlplus login or when EM suggests doing a recovery, not otherwise.
    What happens when you put in the connect string, the current tnsnames entry? Are you able to connect?
    HTH
    Aman....

Maybe you are looking for

  • How to Import iMovie v9 Projects/Events to iMovie v10

    I had a heck of a time finding info on transitioning from the previous version (v9.0.9) to the current version (v10.0.7). One of the problems I was having was getting the new version to recognize my old Projects and Events. After some digging here an

  • Is it possible to maintain a mandatory field in R/3 Support Message?

    Hello Experts, I am implementing Service Desk feature of SOLMAN 7.0 ehp1. Client is expecting to add one field wherein he wants to add some additional information about the message reporter. Since it is an important information, client wants this fie

  • Various keys not working on apple keyboard in 64-bit windows 7

    Has anyone ran into an issue with the 64-bit version of windows 7 where the "=" on the numeric keypad of the apple usb keyboard stops working? I have tested it in OSX and the key still works, and it also even works in the 32-bit version of windows 7.

  • Safari 5.1.1 not working with Windows 7

    I am running Windows 7 with the latest updates from Micrsoft on my Asus desktop and recently downloaded Safari 5.1.1 after receiving a notice that there was an updated version available. Now Safari will no longer open any websites including the homep

  • Need code for this checkbox trigger...please

    Hi All, I have a checkbox in detail block where block is having No. of records displayed is 3(Three) so Checkbox and all other items are displaying thrice. I am inserting the records 1 by 1 using the following code Declare Begin      Loop           F